Re: Nginx reload, выедает CPU
Serge Negodyuck
serg at petrovich.kiev.ua
Tue Aug 27 17:27:47 UTC 2013
27 августа 2013 г., 18:47 пользователь Maxim Dounin
<mdounin at mdounin.ru> написал:
> Hello!
>
>
> Судя по backtrace'у, nginx честно ждёт новых собитий в ядре.
> Возможно, "кушать процессор" - это побочный эффект от нехватки
> ресурсов из-за большого количества завершающихся процессов?
Штатно, 4 ядра, гипертрединг выключен, 8 процессов nginx. Нагрузка на
CPU до 30% (суммарно по всем 8 процессов, т.е до 4% каждый).
Как только даешь сигнал HUP, воркеров становится 16. 8 умирающих
процессов в течении 10 секунд плавно набирают CPU usage до максимума
ресурсов
Держатся в таком состоянии столь угодно долго - 3 часа точно могут висеть.
Видео для наглядности http://ascii.io/a/5172
>
> Имеет смысл либо походить по коду в gdb, либо посмотреть на
> картину с помощью ktrace + kdump -T. Ну и на банальный top тоже
> имеет смысл посмотреть внимательно.
Ок, попробую нарыть больше информации для диагностики. И воспроизвести
в минимальной конфигурации.
>
> Note: рабочие процессы завершаются только тогда, когда закончена
> обработка всех запросов. Соответственно долгоживующие запросы a
> la проксирование websocket'ов - могут долго препятствовать
> завершению рабочих процессов, тем самым приводя к их накоплению.
Да, вполне устраивает что старые процессы могут жить еще сутки. Но
при этом, по идее, старые воркеры должны со временем потреблять все
меньше и меньше процессора. Но, не наоборот.
Подробная информация о списке рассылки nginx-ru