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