2010/11/7 Alex Vorona
<voron@xxxxxxxxxx>
07.11.2010 13:44, Gena Makhomed wrote:
On 07.11.2010 13:02, paranoidchaos wrote:
* soft nofile 5120
* hard nofile 10240
всё нормально срабатывает при рестарте
и энджи видит их
* - это изменение дефолтового значения. но это не нормально.
нормально будет, если изменять лимиты через worker_rlimit_nofile.
http://sysoev.ru/nginx/docs/ngx_core_module.html#worker_rlimit_nofile
worker_rlimit_nofile работает, пока число открытых файлов при configtest не превышает 1024. Потом - только увеличение лимита снаружи nginx.
nginx вызывает setrlimit при инициализации worker до вызова setuid. Т.е. если root позволено повышение лимитов, то для воркеров будет увеличина таблица файлов (src/os/unix/ngx_process_cycle.c)
bash (когда вызывается ulimit -n number) делает всё тотже setrlimit (легко проверить через strace strace -f bash -c "ulimit -n 2048" )
Таким образом видно, что эта директива меняет размер таблицы дескрипторов для всех дочерних процессов созданных после sighup (если не хочется рестартовать) или после рестарта.