Quoting Golub Mikhail <[email protected]>:
Доброго времени суток.
Еще один вопрос, который решаю перезапуском сквида. Но это не правильно :)
Мне мало дескрипторов, с которыми сквид запускается при старте системы
(именно после перезагрузки сервера).
В /etc/sysctl.conf указано:
kern.maxfilesperproc=100000
Возможно это никак не влияет на размер таблицы открытых файлов для
сущности sh , в рамках которой отрабатывается /etc/rc - и
соотвественно его потомков.
Но squid упорно при загрузке сервера берет другое значение, гораздо меньше.
Что видим в логе:
2014/12/03 10:07:11 kid1| Starting Squid Cache version 3.4.9 for
amd64-portbld-freebsd10.1...
2014/12/03 10:07:11 kid1| Process ID 1451
2014/12/03 10:07:11 kid1| Process Roles: worker
2014/12/03 10:07:11 kid1| With 28737 file descriptors available
...
и через запрос к сквиду:
squidclient -p 3128 -h хост mgr:info | grep 'file descri'
Хотя "sysctl kern.maxfilesperproc" показывает заданное в файле значение.
Если же потом перезапустить сквид (не сервер) - все нормально, он
подхватывает значение, заданное в sysctl.conf.
Такое поведение что у старого сквида 2.7, что у нового 3.4.9.
Через rcorder показывает, что /etc/rc.d/sysctl стартует в самом начале.
/usr/local/etc/rc.d/squid гораздо позже.
--
Голуб Михаил