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]

Ответить