Количество файловых дескрипторов в системе ограничивает количество одновременно открытых файлов. В большинстве linux дистрибутивов это значение равно 1024 на одного юзера. В большинстве случаев этого хватает, но бывают и исключения. Обычно это высоко нагруженные серверы прокси или баз данных.
Проверить существующие в операционке лимиты вы можете так:ulimit -Hn
иulimit -Sn
Если ваш Squid вдруг повис и заругался в лог примерно так
WARNING! Your cache is running out of filedescriptors
то это повод задуматься об увеличении ограничения в 1024 дескриптора.
MySQL в таком случае говорит
OS error code 24: Too many open files
Количество дескрипторов выставляется в следующих конфигурационных файлах:
/etc/security/limits.conf
Можно выставить лимиты для отдельного юзераproxy soft nofile 4096
proxy hard nofile 10240
В строке по порядку через пробел идут следующие значения: [юзер] [тип ограничения] Nofile [число]
Можно увеличить сразу для всех* - nofile 4096
Так же идём в файл /etc/sysctl.conf и прописываем в него такую строчкуfs.file-max = 100000
Сохраняемся и перелогиниваемся, возможно нужно будет и перезагрузиться.
Теперь можно проверить как поживает squid.squidclient mgr:info | grep 'file descri'
В общем виде команда выглядит так
squidclient -p {порт прокси} -u {юзер прокси} -w ‘{пароль}’ mgr:info | grep ‘file descri’
Как вариант проверьте значение дочерних процессов в конфиге squid и размер кеша. Возможно в вашем случае вариантом будет не много пожертвовать производительностью в угоду стабильности.
В зависимости от версии squid в его конфигурации так же есть параметры, отвечающие за количество дескрипторов, это max_filedesc и SQUID_MAXFD.