分类目录归档:python

高性能python web服务器

来自于: http://www.webguo.com/2011/01/24/python_high_performance_webserver.html

还有一篇外篇测试:http://nichol.as/benchmark-of-python-web-servers

最近在物色高性能的python web服务器。一般来说,web服务器常见的有nginx,apache,lighttpd等,我是个nginx控,所以一开始就把apache,lighttpd给抛弃了,采用nginx作为前端。

当然,前端固然很重要,但更加重要的是后端的处理服务器,以不同模式为基础构建的web app服务器决定着整个系统的响应快慢。

通过参考Nicholas Piel写的《Benchmark of Python WSGI Servers》我圈定了以下几个服务器(模块):mod_wsgi for nginxfapws3, geventuwsgi,以及陪同测试的django自带FastCGI prefork/threaded模式。

mod_wsgi代表nginx原配python wsgi协议支持,fapws3是Fast Asynchronous Python Web Server的简称,使用processor/thread模型,gevent是走的lightweight threads路线,uwsgi采用的是nginx的模块+自身socket多processor/thread模型,之所以没选择callback/generator类型的服务器是因为都还不成熟,在Nicholas的那篇文章里面可以看出他们丢包率以及性能都不尽人意。

首先,介绍硬件情况:公司一台年久失修的服务器,P4 2G单核,512M内存,1.5G Swap,Ubuntu 8.10 Desktop,上面还开了个Nagios监控器和个FireFox,性能绝对是你能想象出的底线。原本服务器上跑了个Apache2,因为很久没有使用apache2了,实在是懒得去翻document找如何配置,就又装了个nginx 0.8.35,今天升级到了0.8.36,性能上2者基本毫无区别,36版只是针对35的bug进行了修复,所以对结果没有实质上的影响。django 1.1+flup作陪同的FastCGI prefork/threaded模式测试,测试软件采用Apache Benchmark Version 2.3。

Continue reading 高性能python web服务器