我的 web 程序原先是 uwsgi+flask,preforking 同步。最近想尝试一下 gevent,于是打上猴子补丁测试了一下。环境是 docker for mac, 虚拟机的 CPU 设置为 8 核心(宿主为 i7 7700k ),虚拟机的内存 8G。
阻塞 IO 的 uwsgi 配置为:
master = true
processes = 6
thunder-lock = true
cheaper = 3
cheaper-algo = backlog
gevent 的 uwsgi 配置为:
master = true
processes = 6
gevent = 1000
thunder-lock = true
cheaper = 3
cheaper-algo = backlog
我的测试结果是:
- 对于 IO 较少的操作,使用 gevent 后耗时严重增加(可能跟我 gevent 设置为 1000 有关,100 应该能缓和一些)
- 对于一个请求内有几次数据库读写的操作来说,使用 gevent 性能提升不是很大
具体测试结果: https://s1.ax1x.com/2018/12/10/FJ3yz4.png
请问各位,我这个测试结果靠谱吗?有没有什么不严谨的地方?结论是否成立呢?