php海量架構

架構 Varnish+nginx+php(FastCGI)+MYSQL5+MenCache+MenCachedbphp

 

 

說明:
我在設計系統架構時,進行了大膽的嘗試,只用6臺Web服務器,達到了可承受4000萬PV(頁面訪問量)的性能:nginx

  拋棄了 Apache,由於它能承受的併發鏈接相對較低;
  拋棄了 Squid,由於它在內存利用、訪問速度、併發鏈接、清除緩存等方面不如 Varnish;
  拋棄了 PHP4,由於 PHP5 處理面向對象代碼的速度要比 PHP4 快,另外,PHP4 已經再也不繼續開發;
  拋棄了 F5 BIG-IP 負載均衡交換機,F5 雖然是個好東西,但因爲價格不菲,多個部門多個產品都運行在其之上,流量大、負載高,從而致使性能大打折扣;web

  利用 Varnish cache 減小了90%的數據庫查詢,解決了MySQL數據庫瓶頸;
  利用 Varnish cache 的內存緩存命中加快了網頁的訪問速度;
  利用 Nginx + PHP5(FastCGI) 的賽過Apache 10倍的高併發性能,以最少的服務器數量解決了PHP動態程序訪問問題;
  利用 Memcached 處理實時數據讀寫;
  利用 HAProxy 作接口服務器健康檢查;數據庫

  通過壓力測試,每臺Web服務器可以處理3萬併發鏈接數,承受4千萬PV徹底沒問題。瀏覽器

  保證4千萬PV的併發鏈接數:(40000000PV / 86400秒 * 10個派生鏈接數 * 5秒內響應 * 5倍峯值) / 6臺Web服務器 = 19290鏈接數緩存

實驗證實: 
舉個簡單的例子,服務器192.168.0.2上運行Nginx+PHP,192.168.0.3上運行Apache+PHP,你在192.168.0.4上安裝壓力測試工具webbench,以30萬併發鏈接分別請求Nginx和Apache服務器上的一個PHP文件60秒鐘。在這期間,你用你的瀏覽器訪問Apache服務器上的PHP文件,會發現要麼是「該頁沒法顯示」、要麼是等待好幾秒鐘才能打開,而Nginx服務器的PHP文件,依然沒有絲毫影響,訪問速度仍然飛快。服務器

webbench -c 300000 -t 60 http://192.168.0.2/index.php架構

webbench -c 300000 -t 60 http://192.168.0.3/index.php併發

 

如下爲 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服務器在3萬併發鏈接下,開啓的10個Nginx進程和250個php-cgi進程時的系統負載狀況:負載均衡

相關文章
相關標籤/搜索