我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量:

  服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)

  服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)

  Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)

  PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。

  网卡流量:1.5M~3M/秒

  请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
引用
grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l


  点击在新窗口中浏览此图片

  服务器的系统负载也不算高:

  点击在新窗口中浏览此图片

  总结:
  1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。

  2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。

  3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。

  4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。

  5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。

  6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。

  7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。


Tags: , , , , , ,
技术大类 » Web服务器 | 评论(54) | 引用(0) | 阅读(88359)
Ajian Email Homepage
2008-3-26 18:39
从你的Blog中学到不少东西。
我从你上篇Nginx的文章做了实验Apache和Nginx的对比,从处理结果,服务器压力方面比较,结果是静态的处理能力Nginx比Apache强,PHP方面差不多,Nginx稍微差点。前提是没有做太多的优化。
下次“CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置”你的这篇文章出来,我再进行一次测试。
会不会把相关Memcache的配置也加进来?
sx98083714
2008-3-26 19:52
“有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文”
呵呵,期待呀!不过最近肯定忙着准备结婚吧,估计要很晚才能看到了,不过结婚第一呀!祝一切顺利,早日写出佳作,大家也跟着你一块进步了。
草根网 Email Homepage
2008-3-26 21:46
Loveyuki
2008-3-26 22:59
能测试下 Lighttpd 的负载么?
大森林
2008-3-27 07:22
“有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文”
最近正要用上,期待尽快能出炉,先谢谢啦~~
chuan
2008-3-27 08:19
用了1年多的lighty了,感觉也很好,不知道Nginx对Lighty有什么优势没有?
nightsailer Homepage
2008-3-27 13:30
@zhangyan

3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
有没有试过 PHP-FPM补丁?  我一直使用这个补丁
http://php-fpm.anight.org/

虽然需要对php打补丁,但实际效果感觉还是不错的.

6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。

我年初作压力测试时候也一直被这个困扰,最后使用fpm缓解了一下, 后来使用snapshot, 还算好点了. 我估计使用FastCGI模式的并不多(相对mod_php).


BTW: 这个博客的评论在Safari3.1下无法使用啊, 我重写了3次,又换了firefox
fear


@chuan

Lighty我也一直用, 其实都合有千秋. 我看中nginx的是它的稳定性,此外就是负载均衡能力, 另外,配置比较灵活方便,易于管理,比如rewrite。 lighty如果做单一的图片服务器还是不错的,也有人将Lighty放在nginx后面,此外Lighty的稳定性不尽人意,没有nginx那样让人放心。
top
2008-3-27 15:10
PHP-FPM 这个东西 要怎么使用啊  文档好少啊
top
2008-3-27 15:12
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。

这个要怎么修改啊
代码罐头
2008-3-28 12:57
CentOS 5.x下环境的
NGINX+PHP FASTCGI

http://www.hiadmin.com/index.php?entry=entry080111-151926
LinYH Homepage
2008-3-28 21:11
过来窜门一下,我是一个对网站设计特别热爱的人,刚才在蓝风网络日志看您的BLOG,就进来看了一下,觉得您这里有好多东西学,所以就顺便在您这申请了友链
tecer
2008-3-30 10:55
www.newsmth.net用的Nginx,三天两头重启,总平均访问2万,也就2万个迸发连接吧?
tecer
2008-3-30 10:59
看看新水木的服务器,同时在线,最多22000,用的是nginx0.5.35,三天两头重启。
刀马 Email Homepage
2008-3-31 17:55
博主有没有比较过lighttpd和nginx?
David
2008-3-31 22:58
感謝分享~~經常來您的Blog觀看您寫的技術文章~希望您能多寫一點 :-)
ps.祝新婚愉快!!
Bendy Homepage
2008-4-2 01:51
一直关注你啊...
love
xiaobaogao
2008-4-2 17:13
好文章,感谢分享zan

鄙视下面这个盗版的小子
http://blog.csdn.net/scun/archive/2008/03/27/2222233.aspx
thumbdown
可酷可乐 Homepage
2008-4-27 09:15
看看CentOS+nginx的配置。期待你的新文章。
Kemon Homepage
2008-6-21 00:17
学习学习,收获不小,http://www.jinghua.cn 就是学了你的方法搭建的.不过不是php的,是java的系统.Nginx varnish 的贡献好大.谢谢!
曾经因为ip被封不能看甚感遗憾,现在能了太好了.
守住每一天 Email Homepage
2008-6-26 18:14
能不能说下是怎么测试的?
测试全过程是?

我用了好几个软件 httperf autobench webbach ab siege 等测试的都不理想啊。。。

都没有你那么明显。说得那么夸张 。
张宴 回复于 2008-6-28 02:19
这不是测试环境,而是生产环境下,网站真实的用户访问状况。统计图表是从nginx访问日志得出的数据。
分页: 1/3 第一页 1 2 3 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]