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

[经验分享] 增加squid的filedescriptors-sukhoi

[复制链接]

尚未签到

发表于 2018-12-26 12:31:29 | 显示全部楼层 |阅读模式
  Squid中的FileDescriptor解释:
  即文件描述符,是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。
  遇到的现象和问题:
  Unix/Linux操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是,通常有一个系统级的限制。可以在命令行中用ulimit -a命令查看,多数程序运行时,报出"too many openfiles"或本例中的squid的情况都与系统中“open files”环境参数有关,也就是ulimit -n。
  因为squid 的工作方式,文件描述符的限制可能会极大的影响性能。当squid 用完所有的文件描述符后,它不能接收用户新的连接。也就是说,用完文件描述符导致拒绝服务。直到一部分当前请求完成,相应的文件和socket 被关闭,squid 不能接收新请求。当squid发现文件描述符短缺时,它会发布警告。
  比如我们这次遇到的“WARNING! Your cache is running out of filedescriptors”
  检查当前的squid配置:
  执行squidclient mgr:info命令可以查看当前squid的所有运行时参数,其中squidclient mgr:info | grep 'file desc'就可以看到关于文件描述符的配置了,例如:
  Maximum number of file descriptors:   16384  (这个是最大数量,当然是我们优化以后的,默认是1024,做网关代理肯定不够用了)
  Largest file desc currently in use:   1640  (当前最大使用量)
  Number of file desc currently in use: 1301  (当前使用量)
  Available number of file descriptors: 15083  (剩余数量)
  Reserved number of file descriptors:   100  (保留数量)
  通常Squid在安装过程中,执行./configure时,会根据系统中ulimit -n的输出值,来判断其最大可用的FileDescriptor。所以,在运行./configure 之前,检查你的系统的文件描述符限制是否合适,能给你避免一些麻烦。大多数情况下,1024 个文件描述符足够了。非常忙的cache可能需要4096或更多。
  修改的方法:
  #通常情况下,应当将FileDescriptor至少设置为ulimit -n的2倍。
  第一步:将ulimit -n的数量先加大:ulimit -HSn 32768。这个通常有几种方法:
  1.直接执行:ulimit -HSn 32768,但重启OS后会失效
  2.编辑/etc/rc.local,加入一行:ulimit -HSn 32768,重启后生效
  3.编辑/etc/security/limits.conf,重启后生效(下面2种都可以,其区别可以网上搜一下):
  a.*       -       nofile  32768
  b.proxy           soft    nofile          32768
  proxy           hard    nofile          32768
  4.编辑/etc/init.d/squid,在该脚本执行start()动作前,加入“ulimit -HSn 32768”
  第二步:将squid的filedescriptors增大,这个通常也有几种方法:
  1.修改/etc/squid/squid.conf,将max_filedesc设置为32768
  2.编译安装squid时,在执行configure前,先在命令行执行一次:ulimit -HSn 32768
  3.编译安装squid时,在执行configure时,加上--with-maxfd=32768 参数
  相比较之下,当然是第一种简单了 :)


运维网声明 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.yunweiku.com/thread-656088-1-1.html 上篇帖子: Discuz!NT静态文件缓存(SQUID)解决方案 下篇帖子: squid清理缓存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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