Сквид, исчерпывающий filedescriptors на CentOS 7

Я выполняю Сквид 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

Сквид был также скомпилирован с этим флагом:

--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.

Совет?

5
задан 18 August 2015 в 23:23
1 ответ

Количество файловых дескрипторов устанавливается в файле модуля 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
2
ответ дан 3 December 2019 в 01:57

Теги

Похожие вопросы