четверг, 9 марта 2023 г.

В squid ошибка "Too many open files"


Установил 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

Все заработало.

Комментариев нет:

Отправить комментарий