Re: nginx полностью загружает весь процессор при reload'e
Maxim Dounin
mdounin на mdounin.ru
Вт Авг 27 11:03:21 UTC 2019
Hello!
On Tue, Aug 27, 2019 at 03:24:03PM +0500, Dmitry Sergeev wrote:
> Версия: 1.14.2
> ОС: ubuntu 16.04
> Процессор: Intel Core i7-6700 CPU 3.40GHz
>
> Средняя нагрузка: 5 000 rps, пиковые значения 12 000 rps. Статики
> практически нет, все запросы проксируются либо на бэкенды с nodejs через
> proxy_pass либо на php-fpm через fastcgi_pass. Виртуальных хостов 16,
> несколько из них имеют среднюю нагрузку 2K rps, остальные 500 rps.
>
> С бэкендами nodejs включен keepalive, с php отключен.
>
> Кроме nginx на сервере ничего нет.
>
> Проблема в том, что при reload'e конфигурации, несколько минут nginx
> начинает жрать весь процессор, все ядра под 100%, и запросы начинают
> обрабатываться медленно либо совсем сбрасываются, отсюда куча ошибок у
> клиентов. Такая проблема наблюдается только на серверах, где много
> виртуальных хостов (15-30). На серверах с аналогичной нагрузкой, но
> например 1-3 виртуальными хостами. Таких проблем не наблюдаю.
>
> Может быть кто-нибудь подскажет, как можно это оптимизировать, что-то
> подкрутить. Может можно как-то плавнее релоадить, чтобы медленее, но при
> этом нагрузка на CPU как-то плавнее распределялась.
Для начала - имеет смысл посмотреть на количество доступной
памяти. При релоаде количество рабочих процессов увеличивается
вдвое, и если памяти мало - система может уходить в свап с
печальными последствиями.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru