Re: "worker process is shutting down" и ошибки open files

Maxim Dounin mdounin на mdounin.ru
Ср Сен 13 19:27:22 UTC 2017


Hello!

On Wed, Sep 13, 2017 at 12:07:49PM -0400, ingtar wrote:

> Добрый день! Такая непонятная штука стала происходить (время появления не
> зафиксировали)
> Есть nginx в котором:
> worker_processes  28;
> worker_rlimit_nofile 20000;
> 
> В случае выполнения nignx reload старые ооочень долго не завершаются.
> Настройка worker_shutdown_timeout 1m выставлена, но особо не помогает.
> Через какое-то время появляются ошибки Too many open files. Если посмотреть
> по открытым файлам для каждого процесса то картина следующая:

[...]

Для начала я бы рекомендовал посмотреть в логи ошибок, нет ли там 
сообщений с уровнями "crit", "alert" или "emerg", особенно - от 
мастера.  Если они есть - то разбираться, что их вызвало.

Вообще обращают на себя внимание два фактора:

- работающих рабочих процессов существенно меньше, чем должно быть 
  исходя из конфига;

- время запуска процессов распределено хаотически (в частности, 
  совпадает время запуска работающих процессов и завершающихся).

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

Такое может произойти, например, если nginx упёрся в ограничение 
по количеству открытых файлов на пользователя, и в этот момент 
попытались сделать reload.

Отмечу в скобках, что для восстановления из подобной ситуации - 
обязательно перезапустить nginx.  Попытки делать очередные 
reload'ы ни к чему хорошему не приведут.

-- 
Maxim Dounin
http://nginx.org/


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