Почему CPU утилизируется на 100% процессами nginx при входе пользователей?
Есть сервис работающий на битриксе в связке с maria DB. На сервисе реализована доменная аутентификация. Аутентификация вызывается на каждый запрос (на статику в том числе). Все запросы статики кэшируются. Каждый раз в пики нагрузки при массовом входе на сервис наблюдаем аномальную нагрузку на CPU процессами nginx (под 100%). Версия nginx 1.24. Имитация нагрузки на нагрузочном стенде и боевой среде не дают такой же реакции. На бою наблюдаем через модуль VTS до 1500 соединений за 2 минуты. Имитируем эту же ситуацию используя тестовый AD и сервис успешно справляется с этой нагрузкой, даже более того, сервис выдерживает как большее число соединений, так и больший RPS. Анализ ситуации на бою показывает, что сервис способен выдержать более 1000 rps с легкостью, но с меньшем числом соединнений. Как только резко начинают просто входить новые пользователи, CPU nginx улетает под 100%. Число процессов nginx = числу ядер.
Была ли у вас схожая ситуация, как решали? Почему не удается симитировать это на тестовом стенде?
Отмечу, что метрики прометеуса busy user и busy систем делят ядра 50%на50%
1) Чудес не бывает - что-то на тестовом сервере сконфигурировано не так.
2) Я не совсем понял - вы пробовали проводить нагрузочное тестирование с прод сервером и эффекта 100% CPU нет?
по пункту 2 совершенно верно. Я и на основе статистики скрипт нагрузочный сделал и посмотрел, чтобы по модулю VTS число соединений сходилось, единственное отличие самого теста от боевой нагрузки было то, что сервер AD был тестовый, в остальном все совпадало. Конечно если создать большое число writing connection Именно, то сервер упадет, но там нагружается redis Больше чем nginx
Александр Руснак,
- разные AD на мой взгляд не должны влиять на результаты - конечно если время ответа AD примерно одинаково в обеих случаях
-
по модулю VTS число соединений сходилось
- ИМХО ваш стресс тест не 100% подобен реальной нагрузке. Почти уверен, что если смоделируете кол-во новых пользователей, получите тот же результат, что и на проде.