Django сервер разработки очень медленный - PullRequest
0 голосов
/ 14 июля 2020

У нас есть приложение, которое отлично работает в продакшене, но очень медленно на машине разработчика.

Django == 2.2.4

Я использую Ubuntu 20.04, но другие разработчики используют macOS и даже Windows.

Наш рабочий сервер очень мал по сравнению с ноутбуками для разработчиков (он работает очень медленно в любой среде разработки, нас 5 разработчиков).

Приложение делает несколько запросов, так как это одностраничное приложение, которое использует Django Rest Framework и React. js в интерфейсе.

Мы пробовали локально разные базы данных (в настоящее время postgresql, пробовали MySQL и sqlite3), используя docker, не docker, но это не влияет на производительность.

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

Загрузка приложения в среде разработки занимает от 2 до 3 минут, а в любой производственной или промежуточной среде - немногим более 10 секунд.

Также попытался отключить DEBUG в задней и передней части, ничего не изменилось.

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

Я видел альтернативы (плагины), чтобы сделать сервер разработки многопоточным, но эти решения не работают с последними версиями django.

Какие альтернативы мы могли бы попытаться улучшить?

1 Ответ

0 голосов
/ 14 июля 2020

Похоже, размещение этого вопроса помогло мне придумать альтернативу. Использование gunicorn в среде разработки действительно помогает.

Установил его с помощью

pip install gunicorn

А затем запустите его, используя:

venv/bin/gunicorn  be-app.wsgi --access-logfile - --workers 2 --bind localhost:8000 

Конечно, если я хочу получить доступ stati c и медиафайлы, мне нужно настроить локальный nginx, но это не имеет большого значения

...