celery 和 gunicorn 的不同 pool 模式,我测下来 sync 性能最好😓

2023-01-18 15:24:12 +08:00
 wuwukai007
celery -A app worker -Q xxx -P gevent -c 30
celery -A app worker -Q xxx  -c 8
celery -A app worker -Q xxx  -c 30 -P threads

gunicorn app -k gevent -w 8 --worker-connections=200
gunicorn app -k gthread -w 4 --threads=20
gunicorn app -k sync -w 8
 比较纳闷常识是 io 任务用 gevent 
 处于好奇,本地模拟了下简单的 celery io 任务
 celery 任务里,本地模拟了个 task ,锁 id mysql 查询一条数据
 分别用 gevent ,sync ,threads
 结果是 sync > threads > gevent
 sync 和 threads 性能差别不大,gevent 只有前两个的 60%不到
2075 次点击
所在节点    Python
2 条回复
chenqh
2023-01-18 15:30:10 +08:00
gevent 是为了应对高并发吧, 一般没有高并发肯定是把进程当线程用最爽
mayli
2023-05-06 04:45:50 +08:00
你的 mysql 部分会不会跟 Gevent 不兼容?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909720

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX