Apache和PHP/Perl/Python組合加速
本技巧不僅僅可以為 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 參數的調整。
|
新聞熱點
疑難解答