Hello!
On Wed, 03 Dec 2014 at 17:02:00 (+0200), Golub Mikhail wrote:
> Resource limits for class root:
> cputime infinity secs
> filesize infinity kB
> datasize infinity kB
> stacksize infinity kB
> coredumpsize infinity kB
> memoryuse infinity kB
> memorylocked infinity kB
> maxprocesses infinity
> openfiles infinity
> sbsize infinity bytes
> vmemoryuse infinity kB
> pseudo-terminals infinity
> swapuse infinity kB
Это при старте сквида после рибута?
> Hello!
> On Wed, 03 Dec 2014 at 14:11:56 (+0200), Golub Mikhail wrote:
> > Добавил для дебага в /usr/local/etc/rc.d/squid:
> > squid_prestart()
> > {
> > sleep 5
> > set -x
> > limits -a >> /tmp/res.txt
> > sysctl kern.maxfilesperproc >> /tmp/res.txt
> > set +x
> Просто из любопытства: добавьте к "limits -a" ещё "-U `whoami`" и
> покажите вывод и описание класса, которое покажет limits.
> > Ребут.
> > В /var/log/squid/cache.log:
> > 2014/12/03 13:41:21 kid1| Set Current Directory to /var/log/squid
> > 2014/12/03 13:41:21 kid1| Starting Squid Cache version 3.4.9 for
> amd64-portbld-freebsd10.1...
> > 2014/12/03 13:41:21 kid1| Process ID 1317
> > 2014/12/03 13:41:21 kid1| Process Roles: worker
> > 2014/12/03 13:41:21 kid1| With 28737 file descriptors available
> > ...
> > При этом в /tmp/res.txt:
> > Resource limits (current):
> > cputime infinity secs
> > filesize infinity kB
> > datasize 33554432 kB
> > stacksize 524288 kB
> > coredumpsize infinity kB
> > memoryuse infinity kB
> > memorylocked 131072 kB
> > maxprocesses 5749
> > openfiles 28737
> > sbsize infinity bytes
> > vmemoryuse infinity kB
> > pseudo-terminals infinity
> > swapuse infinity kB
> > kern.maxfilesperproc: 100000
> > Вот все, что менялось.
> > /boot/loader.conf
> > zfs_load="YES"
> > autoboot_delay="2"
> > ipfw_load="YES"
> > net.inet.ip.fw.default_to_accept="1"
> > accf_http_load="YES"
> > /etc/sysctl.conf
> > net.inet.ip.fw.verbose=1
> > net.inet.ip.fw.verbose_limit=5
> > kern.maxfilesperproc=100000
> > kern.maxfiles=130000
> > При загрузке системы имеем "limits -a":
> > openfiles 28737
> > А после загрузки от рута "limits -a":
> > openfiles 100000
> > В /etc/login.conf классы default и daemon не менял.
> > https://www.freebsd.org/doc/handbook/security-resourcelimits.html
> > "Processes started at system startup by /etc/rc are assigned to the daemon
> login class."
> > Удалил из /etc/sysctl.conf, прописал лимиты в /boot/loader.conf - не
> помогло.
> > Еще заметил, что сквид вылетает при загрузке системы, потом запускается.
> > Причина вылетания - не может установить соединение с MySQL, хотя
> запускается он ПОСЛЕ мускула.
> > А у сквида есть внешние хелперы, которые работают с SQL.
> > Решил добавлением паузы в пять секунд в стартовый скрипт сквида.
> > Теперь сквид стартует чисто при запуске системы, с первого раза, без
> ошибок.
> > Но всеравно с "file descriptors available" меньше заданного через
> sysctl.conf (или /boot/loader.conf, пробовал оба варианта).
> > По поводу http://nginx.org/r/worker_rlimit_nofile - похоже на то.
> > Но у сквида нет такого параметра.
> > Есть max_filedescriptors - но если в системе меньше их, чем я хочу взять,
> то "до лампочки" указание этой опции в конфиге.
> > Да и этот параметр используется для уменьшения "аппетита" сквида к
> дескрипторам.
> > # TAG: max_filedescriptors
> > # Reduce the maximum number of filedescriptors supported below
> > # the usual operating system defaults.
> > #
> > # Remove from squid.conf to inherit the current ulimit setting.
> > Попробую вариант отладки, предложенный Anton Yuzhaninov.
> > -----Original Message-----
> > From: [email protected] [mailto:[email protected]] On
> Behalf Of Lystopad Aleksandr
> > Sent: Wednesday, December 03, 2014 12:41 PM
> > To: [email protected]
> > Subject: Re: [freebsd] squid: kern.maxfilesperproc
> > Hello, Golub Mikhail!
> > On Wed, Dec 03, 2014 at 12:26:58PM +0200
> > [email protected] wrote about "[freebsd] squid: kern.maxfilesperproc":
> > > Доброго времени суток.
> > > Еще один вопрос, который решаю перезапуском сквида. Но это не правильно
> :)
> > > Мне мало дескрипторов, с которыми сквид запускается при старте системы
> > > (именно после перезагрузки сервера).
> > > В /etc/sysctl.conf указано:
> > > kern.maxfilesperproc=100000
> > Попробуйте это указать в /boot/loader.conf -- возможно это решение.
--
George L. Yermulnik
[YZ-RIPE]