ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master_file_limit



23.02.2010 00:54, Kirill A. Korinskiy wrote:
At Mon, 22 Feb 2010 16:27:51 +0200,
Alex Vorona <voron@xxxxxxxxxx> wrote:
21.02.2010 23:56, Igor Sysoev wrote:
On Mon, Feb 22, 2010 at 12:24:56AM +0300, Kirill A. Korinskiy wrote:

At Sun, 21 Feb 2010 14:03:07 +0200,
Alex Vorona <voron@xxxxxxxxxx> wrote:
Привет,

При попытке релоада 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)
дык, он просто выставляет rlimit после того как прочел конфиг, а т.к. ошибка 
происходит на
этапе чтения конфига, получаешь что получаешь. В случае reload у тебя уже есть
стотыщмильонов файловых дискрипторов, вот он и перечитывает их.

Игорь, а зачем было вообще делать rlimit? зачем дублировать ручку системы?
Появление worker_rlimit_... связано с рядом причин:
Я правильно понимаю, что master_rlimit_... не предвидится и стОит довольствоваться системными ручками для поднятия лимитов? Не похоже, что проблема только у меня.


увы, но придется немного менять логику обработки конфига для реализации вашей 
хотелки.

Если очень сильно хочется, могу вам патчик сделать. Хочется?

Спасибо, но поддерживать патчи ещё хуже чем rc.d-скрипты.

Единственное что мне не нравится - лимит нельзя поднять без прерывания в обслуживании. reload работает пока # сокетов + # логов текущей конфигурации + # логов новой конфигурации < лимита файловых дескрипторов, с которым был изначально запущен nginx. online upgrade пока # сокетов + # логов новой конфигурации < лимита файловых дескрипторов, с которым был изначально запущен nginx. Ну и в последнем случае nginx вообще не запустится без предварительного увеличения лимита файловых дескрипторов. Лимит файловых дескрипторов для worker'ов можно изменить с reload'ом, например при включении/увеличении open_file_cache, а при увеличении количества логов - только подкрутка лимита в rc.d-скриптах и рестарт с прерыванием обслуживания.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.