Squid代理警告!您的缓存用尽了Filedescriptors错误和解决方案
时间:2020-01-09 10:43:44 来源:igfitidea点击:
我Squid代理服务器在cache.log文件中看到以下错误消息:
警告!您的缓存用尽了文件描述符 WARNING! Your cache is running out of filedescriptors
我是否需要过滤代理服务器请求以避免此问题?
如何在CentOS/Fedora/RHEL/Debian Linux下解决此问题?
如果在/var/log/squid/cache.log文件中看到此消息,则表明Squid代理服务器用尽了文件描述符,无法处理客户端计算机发送的额外请求。
找出当前文件描述符限制
登录到您的Squid代理服务器,然后在shell提示符下执行以下命令:
# squidclient mgr:info | grep 'file descri' # squidclient -p {port} -u {proxy-user} -w '{proxy-password}' mgr:info | grep 'file descri' # squidclient -p 8080 -u admin -w 'secretePassword' mgr:info | grep 'file descri'
输出示例:
Maximum number of file descriptors: 1024 Available number of file descriptors: 1008 Reserved number of file descriptors: 100
乌贼增加最大文件描述符
首先,更新/etc/security/limits.conf文件:
# vi /etc/security/limits.conf
追加以下行以将电流限制从1024增加到4096:
* - nofile 4096
保存并关闭文件。您必须重新登录以检查新的限制:ulimit -a | grep打开文件示例输出:
open files (-n) 4096
接下来,您需要通过根据Linux发行版修改squid代理服务器配置来设置打开文件描述符的最大数量。
在RHEL/Red Hat/CentOS/Fedora Linux下设置max_filedesc
停止Squid,因为重新配置命令不考虑此值的更改。
仅当没有任何活动的Squid过程时才应更改此值。
# service squid stop
打开/etc/squid/squid.conf文件
# vi /etc/squid/squid.conf
追加/添加/修改max_filedesc指令:
max_filedesc 4096
保存并关闭文件。
启动Squid代理服务器:
# service squid start
现在再次运行squidclient命令或者检查日志文件中是否有消息:
# squidclient mgr:info
在Ubuntu/Debian Linux下设置max_filedesc
首先,停止Squid代理服务器,执行:
# /etc/init.d/squid stop
或者
$ sudo /etc/init.d/squid stop
打开/etc/default/squid设置最大要使用的文件描述符数量。
您可以在繁忙的高速缓存上将其增加到最多(当前)4096个文件描述符。
默认值为1024。
$ sudo vi /etc/default/squid
或者
# vi /etc/default/squid
现在设置SQUID_MAXFD:
SQUID_MAXFD=4096
保存并关闭文件。
启动Squid代理服务器:
$ sudo /etc/init.d/squid start
验证它是否具有新的限制:
# squidclient mgr:info | grep 'file descri'