无法缩放Gunicorn / Flask HelloWorld超过125 RPS

时间:2019-02-26 18:44:16

标签: python performance flask gunicorn locust

我有一个Flask应用,但我无法在本地扩展到超过125 RPS。如下所示,这是一个简单的“ hello world”。

我正在使用Locust.io负载测试工具。我已经将相同的负载测试指向了本地Golang问候世界,并且能够使用1000的RPS。恕我直言,这将我的蝗虫和操作系统配置排除为潜在的瓶颈。

我正在使用17名工人,因为我的计算机具有8个内核({(2*CPU)+1被Gunicorn文档推荐)

据我所读,使用gevent工人类型的Gunicorn应该使我达到了1000的RPS,就像Golang一样。这是正确的假设吗?还是我缺少一些重要的东西?

缩写代码:

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello world!'

Gunicorn conf:

gunicorn -k gevent -w 17  --worker-connections 100000 app:app

蝗虫负荷测试结果。每个“用户”每4s一次获得“ /” enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

经过一周的调试,我发现了!原来还有另外一种工作程序类型gevent_pywsgi。使用这种类型的工作程序,总体上可使总体性能提高10倍左右,达到我认为可以接受的水平。

我的测试显示sync工作人员和gevent工作人员的性能没有差异,因此我仍然不确定那里发生了什么,或者gevent工作人员的意图是什么类型是