程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Apache和PHP/Perl/Python組合加速

Apache和PHP/Perl/Python組合加速

編輯:PHP綜合
本技巧不僅僅可以為 PHP 提供加速的技巧,對於 Perl 和 Python 也有同樣的效果。

   為了得到完整的調試結果,建議你采用 apacheBench 或者 httperf之類的軟件。如果你對非 LAMP 架構的服務器測試有興趣的話,建議 
你采用微軟的免費軟件: Web Application Stress Tool(需要 NT 或者 2000)。

  檢測 Apache ,采用 top d 1 顯示所有進程的 CPU 和內存情況。另外,還采用 apachectl status 命令。

  1、升級硬件的一般規則:對於 PHP 腳本而言,主要的瓶頸是 CPU ,對於靜態頁面而言,瓶頸是內存和網絡。一台 400 Mhz 的普通奔騰機器所下載的靜態頁面就能讓 T3 專線(45Mbps)飽和。 

  2、apache 處理 PHP 腳本的速度要比靜態頁面慢 2-10 倍,因此盡量采用多的靜態頁面,少的腳本。

  3、PHP 腳本如果不做緩沖,每次調用都需要編譯,因此,安裝一個 PHP 緩沖產品能提升 25-100% 的性能。

  4、把基於文件的會話切換到基於共享內存的會話。編譯 PHP 時采用 --with-mm 選項,在 PHP.ini 中設置 set session.save_handler=mm 。這個簡單的修改能讓會話管理時間縮短一半。

  5、另外一項緩沖技術是把不常修改的 PHP 頁面采用 Html 緩沖輸出,這些緩沖工具可以參考這裡。

  6、如果你采用了 Linux 系統,建議升級內核到 2.4,因為靜態頁面由內核服務。

  7、采用最新版本的 apache ,並把 PHP 編譯其中,或者采用 DSO 模式,不要采用 CGI 方式。

  8、采用輸出緩沖(請參考ob_start),如果你的代碼有很多的 print 和 echo 語句,能提速 5-15% 。

  9、不要在 Web 服務器上運行 X-Windows ,關掉沒有必要運行的進程。

  10、如果能夠用文本就不要用圖像,盡量減小圖片的尺寸。

  11、分散負載,把數據庫服務器放到另外的機器上去。采用另外低端的機器服務圖片和 Html 頁面,如果所有的靜態頁面在另外一台服務器上處理,可以設置 httpd.conf 中的 KeepAlives 為 off ,來減少斷開連接的時間。

  12、采用 hdparm 來優化磁盤,一般能提升 IDE 磁盤讀寫性能 200%,但是對 SCSI 硬盤也有效果。

  13、修改 httpd.conf : 
  # 關閉 DNS lookups,PHP 腳本只拿 IP 地址
   HostnameLookups off 
   
  # 關閉 htAccess 檢測
   <Directory />; 
   AllowOverride none 
   </Directory>; 
   
  
  打開 FollowSymLinks ,關閉 SymLinksIfOwnerMatch 以防 lstat() 系統調用:
   Options FollowSymLinks 
   #Options SymLinksIfOwnerMatch
  下面還有很多關於 httpd.conf 參數的調整。

 14、Kurt 簡潔而完整的 apache Tuning Tips。

  15、如果喜歡從修改 Apache 源碼入手,可以安裝 lingerd。在頁面產生和發送後,每個 Apache 進程都會浪費一段時光在客戶連接上,Lingerd 能接管這項工作,讓 apache 迅速服務下一個客戶請求。

  16、如果網絡擁擠,CPU 資源不夠用,采用 PHP 的 Html 壓縮功能:
   output_handler = ob_gzhandler
   PHP 4.0.4 的用戶請不要使用,因為存在內存洩漏問題。

   17、修改 httpd.conf 中的 SendBufferSize 為你最大的頁面文件的大小。加大內核的 TCP/IP 寫緩沖大小。

   18、另外一篇文章:Tuning apache Web Servers for Speed,一篇 97 年的很古老的文章。

  19、采用數據庫的持久連接時,不要把 MaxRequestsPerChild 設置得太大。

  20、Caching Tutorial for Web Authors and Webmasters 教你怎樣實現浏覽器緩沖。

  21、如果你足夠勇敢的話,還可以采用 Silicon Graphics 的 Accelerated Apache 補丁。這個工程能使 Apache 1.3 快 10 倍,使 apache 2.0 快 4 倍。

  22、來自Professional apache的技巧。

 

  23、官方的Performance Tuning 文檔,很好的資料,但是十分繁瑣。

  24、編譯 PHP 時,建議采用如下的參數:
   --enable-inline-optimization --disable-debug 

  25、優化 Linux ,more Linux 以及Solaris。 

  26、以上所有的方法都是針對單機而言的,如果你覺得系統還是不夠快,可以采用集群,負載均衡,緩沖技術。采用 Squid 作為緩沖,配置 Squid 的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved