LINUX.ORG.RU
решено ФорумAdmin

WARNING! Your cache is running out of filedescriptors

 


0

1

Доброго времени суток, ЛОР!

С недавних пор стал подвисать squid, до этого год как проработал без перезагрузки. В логе сообщение

squid[2443]: WARNING! Your cache is running out of filedescriptors

Лимит на число открытых файлов в системе (openSUSE 12.2) был по умолчанию 1024. По статье
Squid: Your cache is running out of filedescriptors Solution
увеличил лимит в 4 раза, потом еще, но этого хватило не на долго. На текущий момент у меня:
sysctl -a | grep file-max
fs.file-max = 99536

ulimit -a | grep 'open files'
open files                      (-n) 8192

squidclient -p 3128  mgr:info | grep 'file descri'
        Maximum number of file descriptors:   8192
        Available number of file descriptors: 8013
        Reserved number of file descriptors:   100

Пока работает, но скоро этот лимит за один присест весь куда денется и придется выполнить service squid restart.
Увеличивать open_files не хочу, пока не увижу что это действительно нужно. Как-бы мне найти «виновника» , на момент когда squid подвиснет, можно ли узнать причину этой аномалии, на что весь лимит уходит?


Ну когда лимит исчерпается, тогда посмотрите (запишите в файл) вывод ″lsof″ и список всех процессов, чтобы понять какие процессы относятся к squid. Может он открывает много сокетов, а может запускает много авторизаторов...

mky ★★★★★ ()
Ответ на: комментарий от mky

спасибо за наводку с lsof, выполнил

lsof -i 4 -a -p 10260

и получил странную ерунду, поток записей вроде
squid   10260 squid 1044u  IPv4 611345340      0t0  TCP gw:60233->gw:ndl-aas (ESTABLISHED)
squid   10260 squid 1045u  IPv4 611345341      0t0  TCP gw:ndl-aas->gw:60233 (ESTABLISHED)
squid   10260 squid 1046u  IPv4 611345343      0t0  TCP gw:50554->gw:ndl-aas (ESTABLISHED)
squid   10260 squid 1047u  IPv4 611345344      0t0  TCP gw:ndl-aas->gw:50554 (ESTABLISHED)

и так до самого конца. Это случилось ночью, когда пользователи не работали. Что это может быть, куда смотреть ?) Squid прозрачный, на gw - NAT. Squid Cache: Version 2.7.STABLE9

ethx ()
Ответ на: комментарий от ethx

Кажется удалось локализовать проблему.
В access.log на время зависания первая строка

client.company.lan TCP_MISS/504 256 GET http://gw_ip:3128/ - DIRECT/gw_ip text/html

а потом шквал записей
gw TCP_MISS/504 256 GET http://gw_ip:3128/ - DIRECT/gw_ip text/html

Интересно какой софт на client.company.lan такой запрос делает и зачем) Там вроде чисто, на борту аваст обновляется.

Запустил у себя в браузере http://gw_ip:3128/ и тут-же получил ddos (squid сам себе пересылает запрос бесконечно, неправильный iptables?)
Добавил acl запрещающий url, проблема решилась. Спасибо.

ethx ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.