1
phuslu OP uwsgi 现在已经支持 gevent 作为 LoopEngine, 不知道大家有没有人在用
http://projects.unbit.it/uwsgi/wiki/Gevent |
2
phuslu OP 最后一段作者结论, 我比较认同 :-)
""" As you can see, the results are pretty close with uWSGI having a slight edge in throughput in some cases and gunicorn having a slight advantage in request times. I think we can safely conclude that most of the work is being handled by gevent in this benchmark, so the server doesn’t actually play a huge role in performance. That being said, gunicorn is a lot easier to install as it doesn’t need manual compilation or beta versions of gevent. """ |
3
phuslu OP 事实上, gunicorn 调用 gevent workers 的代码类似这样的原理(uwsgi+gevent 也是差不多的做法).
http://gist.github.com/3928092 gunicorn 是非常值得尝试的. :) |
4
CMGS 2012-10-22 11:09:31 +08:00
gunicorn目前在用,很“实用性”的server,相对于性能逆天的bjoern,gunicorn在提供稳定支持的情况下能最大的利用CPU和用不同Type的Worker去提升性能。uWSGI的问题在于1)源码太乱(导致bjoern出生)2)Hack的话不如Gunicorn方便。3)性能没太多亮点,一个C的和一个纯Python的几乎一致,何苦呢。
而fapws3也有类似的问题,性能/扩展性/进程管理,这又是另外一堆内容了…… 而Gevent,也是“实用性”的异步网络层框架,理由很简单,无论是bug性能级的meinheld还是类似的eventlet,第三方库的支持很重要,而gevent这一点上做得不错,包括我们现在做的活,很容易移植一个项目基于gevent异步起来。 至于异步是否是最优,这又是另外一段内容了……挨踢技术横竖都是回归型的…… 最后吐槽一下Gevent 1.0b4,各种坑……不要轻易尝试吧,改subprocess,fileobj,os这几个核心模块的monkey不是那么容易完成的,1.0b3相对稳定一些。 |
5
phuslu OP @CMGS
嗯. bjoern/fapws3/meinheld 都不够完备, 只能算一个 wsgi server. gevent 就好多了, 1.0b4 多了 subprocess/fileobject 也是大势所趋. |
6
CMGS 2012-10-22 11:34:55 +08:00
1.0b4坑太多了……dev版本都稳定些= =
|