Heroku работает очень медленно при большом количестве запросов

У меня есть приложение Django, развернутое на Heroku. Несколько дней назад все было в полном порядке, когда трафик был небольшим. У меня было 5 запросов в секунду, а время ответа не превышало 2 секунд.

Однако недавно я начал получать много трафика. Количество запросов в секунду выросло до 50, и теперь время ответа составляет 30 секунд. Я пытаюсь понять, что происходит.

Естественно, я увеличил масштаб своих динамо-машин. Я перешел от дино уровня Standard к профессиональному дино с 2 рабочими. Я также обновил свой Procfile, чтобы Gunicorn использовал 12 рабочих: web: gunicorn wsgi -w 12 --timeout 30

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

Я понял, что не использую сжатие Gzip в Django, поэтому я добавил промежуточное ПО Gzip 'django.middleware.gzip.GZipMiddleware'.

Однако, как ни странно, время запроса по-прежнему составляет 30 секунд и более. Ни одно из этих новых изменений не изменило ситуацию.

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

Все это наводит меня на мысль, что что-то не так либо с тем, как настроено мое приложение Django, либо с самим Heroku, но я не уверен, с чего начать отладку этих проблем.

Стоит отметить, что при запуске приложения локально, или даже в моей тестовой среде с hobby dyno и hobby postgres database, приложение работает абсолютно нормально, поскольку не получает никакого трафика.

Вернуться на верх