Установил squid. Подключил к нему одну машину - все работало хорошо. Подключил ораву клиентов. Часть клиентов работало хорошо. А часть нет.
В логах по команде "journalctl --unit=squid" валом были ошибки
Mar 08 11:41:15 testsrv squid[739]: comm_openex socket failure: (24) Too many open files
Mar 08 11:41:15 testsrv squid[739]: comm_openex socket failure: (24) Too many open files
Mar 08 11:41:16 testsrv squid[739]: comm_openex socket failure: (24) Too many open files
Mar 08 11:41:34 testsrv squid[739]: WARNING! Your cache is running out of filedescriptors
Mar 08 11:42:07 testsrv squid[739]: WARNING! Your cache is running out of filedescriptors
Mar 08 11:42:23 testsrv squid[739]: WARNING! Your cache is running out of filedescriptors
Собственно в логах все написано - сквид не может открыть нужное количество файлов.
В решении помогла статья Исправляем ошибку “Too many open files“ в Linux. Там описана возможность изменить предельное число открытых файлов для пользователя, для службы, для всей системы. Я решил что в моем случае лучше будет делать для службы. И дальше будет описан именно этот вариант
Запускаем редактирование свойств службы
systemctl edit squid.service
В открывшемся окне редактора добавляем три строки. Тут закоментированные строки уже были, а незакоментированняе это то что я добавлял
### Editing /etc/systemd/system/squid.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file
[Service]
LimitNOFILE=10000
### Lines below this comment will be discarded
Соответственно тут 10000 это максимальное число файлов которые может открыть сквид. Соответственно в вашем случае это может понадобится настроить. В оригинале была еще строка "LimitNOFILESoft=10000" для мягкого лимита. но сквид ругается что неизвестное имя-игнорирует.
Перезапускаем службу
systemctl daemon-reload
systemctl restart squid.service
Все заработало.
Комментариев нет:
Отправить комментарий