微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在CentOS 7上用完文件描述符的Squid

我在CentOS 7上运行Squid 3.3(EPEL),最近我在cache.log中收到以下错误消息
WARNING! Your cache is running out of filedescriptors

我有点困惑,因为我似乎有足够的描述符可用:

squidclient mgr:info | grep 'file descri'
Maximum number of file descriptors:   16384
Available number of file descriptors: 16326
Reserved number of file descriptors:   100

Squid也用这个标志编译:

--with-filedescriptors=16384

Squid确认这些在启动时实际可用:

2015/08/18 21:11:45 kid1| With 16384 file descriptors available

但是这个错误不断发生.记录此错误后不久,squid进程似乎也达到100%cpu或使用几乎所有系统内存超过90%,导致Internet速度下降到爬行或无限期挂起.杀死进程并重新启动它会解决它但最终会再次发生.

我总共有8 GB的内存,这些是我的squid.conf中与内存/缓存相关的参数

cache_dir ufs /var/spool/squid 16000 16 256
cache_mem 1024 MB

我还使用ufdbguard和其他辅助插件进行Kerberos和NTLM身份验证.

任何建议?

文件描述符的数量在systemd单元文件中设置.认情况下,这是16384,您可以在/usr/lib/systemd/system/squid.service中看到.

要覆盖它,请创建一个本地覆盖的/etc/systemd/system/squid.service,它会更改文件描述符的数量.它应该看起来像这样:

.include /usr/lib/systemd/system/squid.service

[Service]
LimitNOFILE=65536

不要编辑文件/usr/lib/systemd/system/squid.service,因为只要更新软件包,它就会被恢复.这就是为什么我们将它放在本地文件中以覆盖认值.

创建此文件后,告诉systemd:

systemctl daemon-reload

然后重启squid.

systemctl restart squid

原文地址:https://www.jb51.cc/centos/373767.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。