设为首页 收藏本站
查看: 1125|回复: 0

[经验分享] Squid性能杀手——fwdFail分析

[复制链接]

尚未签到

发表于 2015-11-19 13:37:28 | 显示全部楼层 |阅读模式
  http://blog.sina.com.cn/s/blog_697d8c4b0100l4zj.html
  
  Squid在使用aufs做文件系统的时候,对文件系统的读是异步的,而写却是同步的。这样一来,如果存在大量的写操作,将对squid的性能造成严重的影响。
    通常来说,可cache的内容都是“一次写入,反复读取”,而不可cache的内容都不会写入磁盘。那么什么情况会出现如此大量的写入呢?那就是当squid到源站链路很差的时候,可以cache的大文件总是写到一半就被源站中断这种情况。又叫fwdFail。
    fwdFail主要由以下几种原因造成:
    第一,源站关闭连接。比如自己搭建一个源站与squid的环境,用客户端通过squid下载一个大文件,下到一半的时候,关掉源站的http服务。其特点是,squid会受到源站发来的FIN包。这样的话,squid会立即停止下载,并关掉所有的客户端,删除前面下了一半的内容。下次再有客户端来下载的时候,还是从0开始下载。虽然白费了一半的下载,但这还是相对“洗具”的场景。
    第二,“杯具”的场景,就是源站断网,不向squid发FIN包。这样squid就不得不等到read_timeout所配置的时间,再删掉前一半内容,并关掉所有的客户端。更加“杯具”的是,read_timeout到达之前,新连上来的客户端都会“很傻很天真”地等待这一次回源给它们返回数据,直到被关掉。squid默认的read_timeout长达15分钟,这样就会出现squid的连接数在这15分钟内迅速堆积,并使负载急剧升高的情况。
    目前,squid也不支持回源的断点续传,所以只能把第二种情况变成第一种情况。方法就是,将read_timeout设短一些,比如30秒,这样的副作用就是,本来可以恢复的回源连接被早早断掉,使得本来能够下载下来的内容被放弃。
    Squid的回源机制做的还是比较糙,我们下一步会考虑改进这一块,增加断点续传等功能。敬请期待。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-141193-1-1.html 上篇帖子: Squid的长连接,短连接,半连接 下篇帖子: Squid Epoll网络模型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表