Почему истекает время ожидания NGINX?

Почему истекает время ожидания NGINX?

У меня есть приложение с примерно 200 тыс. пользователей, и я запускаю сервер NGINX + Gunicorn(Python) за балансировщиком нагрузки AWS EC2.

Я не понимаю, как мои запросы всегда 4k/минута, но только иногда я получаю половину трафика из-за проблем с тайм-аутом. Большую часть времени все запросы в порядке, но иногда он начинает зависать, и тогда почти все запросы получают тайм-ауты.

Я заметил, что эта закономерность в количестве текущих подключений имеет волнообразный характер и колеблется от 1000 до 0. NGINX как-то объединяет запросы? Как мне дифференцировать request_time, чтобы выяснить, является ли это неправильной настройкой NGINX или просто тем, что мой сервер Python получает слишком медленные конечные точки, вызываемые слишком часто.

Я прикрепил снимок экрана одного из серверов в моей панели управления NGINX Amplify.

Есть ли идеи о частях журналов NGINX или Amplify, которые я могу исследовать, чтобы определить, является ли это проблемой конфигурации NGINX или заблокированным размещенным процессом Python? Спасибо! Панель управления NGINX Amplify

решение1

Посмотрите на метрики CloudWatch, особенно на метрики о "dropped" или "failed". Там вы можете увидеть все подробности о вашем балансировщике нагрузки и ваших экземплярах EC2. Я не знаю, какие типы экземпляров вы используете, но может быть, что вы постоянно перегружаете экземпляры T2/T3 и исчерпываете кредит. Я думаю, что некоторые части вашего потока по какой-то причине дросселируются, и это не обязательно проблема самих экземпляров.

Связанный контент