<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[ Nginx PHP5（FastCGI）生产环境跑PHP动态程序可超过“700次请求/秒”]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 22 Apr 2010 05:37:31 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	我生产环境下的两台Nginx + PHP5（FastCGI）服务器，跑多个一般复杂的纯PHP动态程序，从Nginx的日志可以统计出，单台Nginx + PHP5（FastCGI）服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”，相当于每天可以承受6000万（700*60*60*24=60480000）的访问量：<br/><br/>　　服务器①：DELL PowerEdge 1950（两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz，4GB内存）<br/><br/>　　服务器②：DELL PowerEdge 1950（一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz，4GB内存）<br/><br/>　　Web服务器：CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2（300 FastCGI Procees, unix-domain socket, with XCache）<br/><br/>　　PHP程序内容：大量Memcached读写、少量MySQL读操作、大量文件队列写操作，然后计算，生成供&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.domain.com/abc.php?u=1&quot;&gt;&lt;/script&gt;方式调用的JS代码或XML数据。<br/><br/>　　网卡流量：1.5M～3M/秒<br/><br/>　　请求数统计方式：从Nginx访问日志中，统计每分钟的第15秒共有多少条日志记录。<br/>引用<br/>grep &quot;25/Mar/2008:15:01:15&quot; /data1/logs/nginx.log &#124; wc -l<br/><br/><br/>　　服务器的系统负载也不算高：<br/><br/><br/><br/>　　总结：<br/>　　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的进程不是越多越好，而是够用就好。<br/><br/>　　2、使用PHP的XCache、APC等加速模块会提供速度10倍左右，降低系统负载50倍以上。<br/><br/>　　3、修改了spawn-fcgi，使它能够支持250个以上的FastCGI进程。<br/><br/>　　4、如果PHP直接对MySQL进行大量读写操作，速度是达不到“700 request/sec”的，PHP与MySQL之间需要一个中间层，这是关键的技术。<br/><br/>　　5、CPU的数量（多核算多个CPU，cat /proc/cpuinfo &#124;grep -c processor）越多，系统负载越低，每秒能处理的请求数也越多。<br/><br/>　　6、使用PHP 5.2.6RC2，因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5（FastCGI）在高并发请求情况下，经常会出现该错误。<br/><br/>　　7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5（FastCGI）安装、配置的最新博文。<br/><br/>来源：<br/>http://blog.csdn.net/scun/archive/2008/03/27/2222233.aspx
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论]  Nginx PHP5（FastCGI）生产环境跑PHP动态程序可超过“700次请求/秒”]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>