Nginx + PHP5(FastCGI)生產環境跑PHP動態程式可超過“700次請求/秒”[原創]

來源:互聯網
上載者:User

我生產環境下的兩台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)安裝、配置的最新博文

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.