ПРОЕКТЫ 


  АРХИВ 


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



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_... связано с рядом причин:

1) В какой-то момент из Линукса вынесли /proc/sys/kernel/rtsig-max,
   заменив на RLIMIT_SIGPENDING, но ручки из userland к нему не приделали.

2) Для того, чтобы разрешить в Линуксе создавать корки, проще написать:
поставьте
   worker_rlimit_core  1g;
   working_directory   /path/to/cores;

3) задавать rlimit на старте не самое тривиальное занятие.
Например, во FreeBSD можно записать в /etc/sysctl.conf:
   kern.maxfiles=204800
но на скрипты в /usr/local/etc/rc.d/ это никак не влияет, потому что
эти команды выполняются в разных несвязанных шеллах.
В результате в скрипте старта нужно указать
   ulimit -n `sysctl -n kern.maxfilesperproc`

Кроме того, многие рекомендуют ставить лимиты в /etc/limits.conf, что,
разумеется, не решает проблему.

4) Чтобы менять rlimit без рестарта.


-- 
Игорь Сысоев
http://sysoev.ru

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


 




Copyright © Lexa Software, 1996-2009.