Проблемы производительности Heroku Django - Очередь запросов
Мы запускаем Django-приложение на Heroku, и в последнее время мы наблюдаем некоторые проблемы с производительностью. У нас установлено дополнение New Relic APM, и я вижу, что при любом пике времени отклика время в основном тратится на то, что в New Relic называют "очередью запросов" (см. прикрепленное изображение). введите описание изображения здесь
Может ли кто-нибудь помочь мне выяснить, в чем здесь проблема? Почему запросы ставятся в очередь? Это проблема горизонтального масштабирования? Не похоже, что само приложение Python является
Из моего беглого чтения [документации] NewRelic (https://docs.newrelic.com/docs/apm/apm-ui-pages/features/request-queuing-tracking-front-end-time/) об очередности запросов.
Похоже, что работники вашего приложения заняты обработкой существующих запросов, и им может потребоваться некоторое время, прежде чем они будут готовы обслужить следующий запрос, поэтому запросы стоят в очереди или накапливаются.
Возможно, вы захотите увеличить количество рабочих или горизонтально масштабировать ваше приложение, чтобы иметь несколько экземпляров вашего внутреннего приложения и сбалансировать нагрузку, чтобы больше рабочих могли обслуживать больше запросов и сократить очередь запросов.
Конечно, при выполнении этой задачи вы можете также рассмотреть возможность реализации какого-либо пула соединений с базой данных, чтобы использовать соединения с базой данных более эффективно. Это просто еще одна проблема, с которой вы можете столкнуться при масштабировании, что я и сделал в своих предыдущих проектах.