原始github问题中没有答案: https://github.com/tiangolo/meinheld-gunicorn-flask-docker/issues/48
在下面的简单设置中,我期望 Gunicorn 能够并行处理至少 4 个请求,但我只得到 2 个请求。在下面的配置中,我们可以看到 2 个工作线程和 2 个线程。
此外,我们尝试使用 2 个线程配置工作人员数量 == 1,然后我们在给定时刻仅处理 1 个请求。所以看起来,gunicorn + meinheld 设置只能在每个工作进程中处理 1 个请求,这是非常低效的。
我们在每个设置中并行发送 53 个请求。
simple_app.py:
import sys
from flask import Flask, request
import json
import time
app = Flask(__name__)
@app.route("/", methods=['POST'])
def hello():
headers = request.headers
data = json.loads(request.data)
version = "{}.{}".format(sys.version_info.major, sys.version_info.minor)
message = "Hello World from Flask in a Docker container running Python {} with Meinheld and Gunicorn (default): {}:{}".format(
version, headers, json.dumps(data)
) …Run Code Online (Sandbox Code Playgroud)