У Squid заканчиваются файловые дескрипторы на CentOS 7
Я использую Squid 3.3 (EPEL) в CentOS 7, и недавно у меня появилось следующее сообщение об ошибке 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% ЦП или использует почти всю системную память более чем на 90%, в результате чего скорость интернета падает или просто зависает на неопределенное время. Завершение процесса и перезапуск решает его, но в конечном итоге это произойдет снова.
У меня доступно 8 ГБ памяти, это параметры, связанные с памятью / кешем в моем squid.conf
cache_dir ufs /var/spool/squid 16000 16 256
cache_mem 1024 MB
Я также использую ufdbguard
и дополнительные вспомогательные плагины для аутентификации Kerberos и NTLM.
Любой совет?
1 ответ
Количество файловых дескрипторов задается в файле системного модуля. По умолчанию это 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