Приложение 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-сервер в рабочей среде и приводят несколько примеров того, как начать его правильное развертывание.

Другие вопросы по тегам