Приложение Flask работает медленно, если параллельно используется небольшое количество пользователей
У меня есть приложение Flask с несколькими простыми шаблонами Jinja2. Кроме того, я использую Flask-Assets/pyScss для CSS.
Если с приложением работает один пользователь, то все работает отлично. Если небольшое количество людей (менее 20) получают доступ к приложению параллельно, тогда время отклика иногда увеличивается и создается впечатление, что сервер вообще не отвечает.
Я старался:
ab -n 1000 -c 20 http://myapp
Но я не смог воспроизвести проблему "искусственно". Как бы вы решили эту проблему?
1 ответ
Вы используете сервер разработки (app.run()
или возможно ./manage.py runserver
если использовать Flask-Script). По умолчанию он запускает один поток и не должен использоваться в производстве даже с включенной поддержкой потоков. Вместо этого используйте реальный сервер приложений, такой как uWSGI, и прокси-сервер за реальным веб-сервером, таким как Nginx. Документы Flask прямо говорят вам не использовать dev-сервер в рабочей среде и приводят несколько примеров того, как начать его правильное развертывание.