master_file_limit

Alex Vorona voron на amhost.net
Вс Фев 21 15:03:07 MSK 2010


Привет,

При попытке релоада nginx'а с конфигурацией, которая содержит > 1024 файлов(> 500 доменов, 
по 2 лога на домен), nginx не релоадится с ошибкой
2010/02/21 12:42:42 [emerg] 17723#0: open() "/var/log/nginx/www.domain.com.error.log" 
failed (24: Too many open files)

В конфиге worker_rlimit_nofile 32768;

for pid in $(pgrep nginx); do ps uax|awk '$2~/^'$pid'$/{print $0}';grep files 
/proc/$pid/limits; done
root     17723  0.0  0.4  13748 10124 ?        S    12:38   0:00 nginx: master process 
/usr/sbin/nginx -c /etc/nginx/nginx.conf
Max open files            1024                 1024                 files
apache   17724  0.0  0.4  13712  9112 ?        S<   12:38   0:00 nginx: worker process
Max open files            32768                32768                files
apache   17725  0.0  0.4  13712  9104 ?        S<   12:38   0:00 nginx: worker process
Max open files            32768                32768                files

Рестарт nginx'а с новой конфигурацией проходит нормально

2010/02/21 12:51:41 [notice] 18280#0: OS: Linux 2.6.18-164.10.1.el5
2010/02/21 12:51:41 [notice] 18280#0: getrlimit(RLIMIT_NOFILE): 1024:1024
2010/02/21 12:51:41 [notice] 18281#0: start worker processes
2010/02/21 12:51:41 [notice] 18281#0: start worker process 18282
2010/02/21 12:51:41 [notice] 18281#0: start worker process 18283

однако релоад с ней же по-прежнему не работает с той же ошибкой.

Игорь, это можно как-то исправить кроме как увеличением лимита через ulimit до запуска 
nginx'а ? По-моему start nginx'а с последующим неработающим reload для этой же 
конфигурации не есть хорошо.



Подробная информация о списке рассылки nginx-ru