Как запустить Flask с Gunicorn в многопоточном режиме

У меня есть веб-приложение, написанное в Flask. Как было предложено всеми, я не могу использовать Flask в производстве. Поэтому я подумал о Gunicorn with Flask.

В приложении Flask я загружаю некоторые модели машинного обучения. Они имеют размер 8 ГБ в совокупности. Concurrency моего веб-приложения может идти до 1000 запросов. А оперативная память машины - 15 ГБ.
Итак, каков наилучший способ запуска этого приложения?

Ответ 1

Вы можете запустить свое приложение с несколькими рабочими или асинхронными рабочими с помощью Gunicorn.

Flask server.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Гуникорн с работником авеню gevent

gunicorn server:app -k gevent --worker-connections 1000

Гуникорн 1 рабочий 12 темы:

gunicorn server:app -w 1 --threads 12

Гуникорн с 4 рабочими (многопроцессорность):

gunicorn server:app -w 4

Дополнительная информация о Flask concurrency в этом сообщении: Сколько одновременных запросов обрабатывает один процесс Flask?.