我有一个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
答案 0 :(得分:0)
经过一周的调试,我发现了!原来还有另外一种工作程序类型gevent_pywsgi
。使用这种类型的工作程序,总体上可使总体性能提高10倍左右,达到我认为可以接受的水平。
我的测试显示sync
工作人员和gevent
工作人员的性能没有差异,因此我仍然不确定那里发生了什么,或者gevent
工作人员的意图是什么类型是