Re: nginx полностью загружает весь процессор при reload'e

Maxim Dounin mdounin на mdounin.ru
Пн Сен 2 17:11:11 UTC 2019


Hello!

On Mon, Sep 02, 2019 at 08:54:51PM +0500, Dmitry Sergeev wrote:

> Спасибо большое за ответ.
> 
> Потестил  с параметрами:
> 
> ssl_session_tickets off;
> ssl_session_ticket_key /etc/nginx/ssl/ticket.key;

Just in case, для работы такая конфигурация смысла не имеет - если 
тикеты выключены, то ключ для их шифрования не нужен.  Ключ имеет 
смысл задавать, если тикеты включены.

С точки зрения влияния на reload - внешний ключ позволит сохранить 
тикеты при reload'ах, а выключение тикетов - уведёт всё в кэш 
сессий.

> И довольно интересно получилось:
> http://joxi.net/krD6q0jTKkV9R2.jpg
> 
> На картинке числами отмечены reload'ы
> 1,2,6,7,10  - без настроек tickets (по умоланию включен)
> 3,4,5,8,9 - с отключенным tickets и файлом ssl_session_ticket_key.
> 
> При этом всегда был включен кэш сессий:
> 
>      ssl_session_cache   shared:SSL:20m;
>      ssl_session_timeout 30m;
> 
> Пока сделал вывод, что с отключенным ssl_session_tickets средняя 
> нагрузка выше, но при этом при reload'e нагрузка не так сильно 
> возрастает по отношению к средней. Тесты не совсем чистые, постараюсь 
> сделать более чистый эксперимент.

Ну выключать тикеты - это, безусловно, плохой путь.  Тикеты - 
способ переложить хранение сессий на клиентов, и отказываться от 
этого - очевидно недальновидно с точки зрения нагрузки на сервер.

А вот то, что средняя нагрузка без тикетов заметно выше - это 
немного странно.  Само хранение сессий - должно бы стоить очень 
недорого с точки зрения процессора, а в остальном разница не 
принципиальна.  Но, возможно, тут дело в том, что размер кэша 
SSL-сессий просто мал для имеющегося количества клиентов, и 
поэтому при выключении тикетов handshake'и начинают происходить 
чаще, что и приводит к росту потребления процессора.

Отмечу также, что даже в наиболее экстремальных случаях из 
представленных на графике - рост потребления процессора с ~200% до 
~300% не выглядит сколько-нибудь фатальным.  Какой-то рост 
потребления процессора при релоадах - нормален, здесь же 
наблюдается рост всего в 1.5 раза.  Если это проблема - то стоит 
задуматься о добавлении мощностей и/или заняться оптимизацией.

-- 
Maxim Dounin
http://mdounin.ru/


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