У меня есть простое веб-приложение Python, размещенное в Azure. Вот подробности:
- Служба приложений Azure для Linux (базовый план обслуживания - B1 с 1 ядром)
- Структура Django
- Бэкэнд Postgres через базы данных Azure для PostgreSQL
- Использование Vue на стороне клиента
- Все сервисы находятся в одной группе ресурсов
Проблема
Это простое приложение, и запросы к базе данных занимают около 30 мс , включая время на выбор. Однако приложение работает довольно медленно. Начальное время загрузки SPA в клиенте составляет около 10 с , а последующие запросы занимают около 7-8 с .
Устранение неполадок
Я взглянул на время отклика в представлении приложения, и оно мне показалось приемлемым.
Затем я посмотрел запросы на загрузку одной страницы. Я заметил, что, хотя отдельные ответы для каждого вызова API были быстрыми, между каждым запросом оставалось около 1 с.
Затем я попробовал различные конфигурации оружия,смена рабочих и темы. Я остановился на 1 рабочий с 4 потоками . Это улучшило производительность до 1,5-2 с на загрузку страницы после загрузки SPA. Это все еще не вполне удовлетворительно, особенно учитывая, что понимание приложений предполагает, что среднее время отклика составляет 160 мс .
Затем я масштабировал приложение доПремиум-план обслуживания (P3v2 с 4 ядрами) с использованием 1 рабочего и 9 потоков в конфигурации gunicorn , и ответ на клиенте такой же. Любые предложения о том, что может происходить?