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