Nginx/Gunicorn слишком долго отвечает

Nginx/Gunicorn слишком долго отвечает

У меня есть приложение Django, настроенное для обслуживания статических файлов через Nginx, и апстрим, работающий через Gunicorn, для запуска приложения Django с базой данных PSQL, размещенной на выделенном сервере.
Проблема в том, что сайт слишком долго отвечает даже на домашнюю страницу, которая не требует обращения к базе данных.
Важно отметить одну важную деталь: когда я перезапускаю службу супервизора (которая отвечает за два процесса, один из которых — gunicorn, а другой — celery), я получаю быстрые ответы максимум на 3 запроса.
После этих 3 запросов приложение снова перестает отвечать.

Что касается конфигурации, Nginx настроен на тайм-ауты (все 3: подключение, чтение и отправка), установленные на 300.
Gunicorn имеет такой же тайм-аут и настроен на работу 3 рабочих процессов.

Приложение работает на VPS с одним ЦП и 1 ГБ памяти.
Ниже представлен выводiostatдля базовой статистики.

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.49    0.00    0.44    0.03    3.21   94.83

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda              0.74         3.23        12.79    1023355    4054257'

Что может быть причиной такого поведения?

решение1

Как отметил в комментариях Теро Килканен, проблема, как оказалось, заключалась в самом коде.

Я забивал сервер запросами, чтобы добиться некоего подобия приложения в реальном времени, и это в свою очередь сделало весь сервер недоступным для обслуживания других запросов.
Просмотр статистики сервера не помог прояснить проблему, поскольку все показатели показывали, что сервер доступен для работы.

Поэтому, если вы столкнулись с такой проблемой, просмотрите логи Nginx на предмет наличия нескольких запросов за короткий промежуток времени.

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