Django 4.2.15 на Cloud Run - сильное замедление работы uWSGI и большое время `domLoading`, но только в одном проекте
Я сталкиваюсь с серьезными проблемами производительности моего приложения Django 4.2.15 при запуске на Google Cloud Run. Однако проблема, похоже, связана только с этим конкретным проектом, поскольку другие проекты на Cloud Run не демонстрируют такого же поведения. Вот подробности:
- Версия Django: 4.2.15
- Окружение: Google Cloud Run (1 ядро, 2 ГБ памяти)
- Веб-сервер: uWSGI 2.0.26 (Nginx не используется)
- База данных: MySQL (запросы не являются узким местом)
- Первый ответ При проверке на вкладке "Сеть" в Chrome начальная
document
загрузка занимает 2,04 секунды. - Проблема: Сайт работает значительно медленнее на Cloud Run по сравнению с моей локальной средой.
- Наблюдение: Панель инструментов отладки Django показывает, что около 90% общего времени тратится на фазу
domLoading
, которая непропорционально длинная. - Кэширование: Сайт хорошо работает при обслуживании кэшированных представлений (т.е. когда избегается обращение к базе данных).
- Локальное окружение: Приложение работает очень быстро локально, без заметных задержек.
- Детали облачного запуска:
- Замедление происходит даже тогда, когда другие пользователи не обращаются к сервису.
- Это не связано с холодным стартом; служба уже запущена.
- Другие проекты на Cloud Run не испытывают этой проблемы.
Дополнительно я создал простую статическую HTML-страницу со следующим содержимым:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello world</title>
</head>
<body>
Hello world!
</body>
</html>
Эта страница отображается с помощью базового Django TemplateView
, как показано ниже:
path('plane/', TemplateView.as_view(template_name='plane.html'), name='test'),
Несмотря на свою простоту, эта страница загружается на Cloud Run около 2 секунд, что слишком долго.
Учитывая, что эта проблема характерна только для этого проекта и не затрагивает другие мои проекты Cloud Run, я подозреваю, что в конфигурации или настройках этого проекта может быть что-то уникальное, что вызывает проблему.
Может ли это быть связано с тем, как настроен uWSGI, или могут быть другие факторы в рамках этого конкретного проекта, которые способствуют замедлению работы? Любые соображения о том, как диагностировать или решить эту проблему, будут очень признательны.
Дополнительная информация: Результаты Safari и curl
Сафари:
- domLoading: 2963 мс
curl:
- http_code: 200
- time_total: 6.228104
- time_namelookup: 0.003261
- time_connect: 0.017354
- time_appconnect: 0.078004
- time_starttransfer: 6.095002
Переход с uWSGI на Gunicorn
Я перешел с uWSGI на Gunicorn, но скорость загрузки не улучшилась.