LAMP服務(wù)器性能優(yōu)化技巧之加速PHP
目前LAMP (Linux + Apache + MySQL + PHP) 近幾年來發(fā)展迅速,已經(jīng)成為Web 服務(wù)器的事實(shí)標(biāo)準(zhǔn)。本文我們將介紹基于LAMP組合的服務(wù)器的性能優(yōu)化技巧:加速PHP。
1.使用eaccelerator
我們上面的介紹Apache服務(wù)器的優(yōu)化,如果您曾經(jīng)瀏覽過 PHP 的網(wǎng)頁時,或許會發(fā)現(xiàn):怎么 PHP 的速度慢慢的,這是怎么一回事啊?PHP 不是號稱速度上面的反應(yīng)是很快速的嗎?怎么會慢慢的呢?這是由于 PHP 的程序代碼去調(diào)用了太多的函式庫,而這些函式庫每次調(diào)用都需要由硬盤讀出來,有沒有辦法提升 PHP 的執(zhí)行速度啊。如果我們可以將這些在硬盤里面的函式庫先讀到高速緩存中( Cache ),由于內(nèi)存的速度可比硬盤快多了。如此一來的話,當(dāng)然可以提升不少速度。
2、軟件下載安裝:
wget http://internap.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.bz2
tar jxf eaccelerator-0.9.3.tar.bz2
- /usr/local/bin/phpize
- ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
- make;make install
修改/etc/php.ini文件,加入以下內(nèi)容:
- extension="/PATH/TO/eaccelerator.so"
- eaccelerator.shm_size="16"
- eaccelerator.cache_dir="/tmp/eaccelerator"
- eaccelerator.enable="1"
- eaccelerator.optimizer="1"
- eaccelerator.check_mtime="1"
- eaccelerator.debug="0"
- eaccelerator.filter=""
- eaccelerator.shm_max="0"
- eaccelerator.shm_ttl="0"
- eaccelerator.shm_prune_period="0"
- eaccelerator.shm_only="0"
- eaccelerator.compress="1"
- eaccelerator.compress_level="9"
然后建立快存取數(shù)據(jù)目錄:
- mkdir /tmp/eAccelerator
- chmod 0777 /tmp/eAccelerator
從新啟動Apache服務(wù)器:
- /etc/rc.d/init.d/httpd restart
通過lynx瀏覽器打開Web頁面查看通過phpinfo()已經(jīng)可以看到圖7,就表示安裝成功。
圖7 eAccelerator啟用
從圖中可以看到:eAccelerator啟用了。下面 使用ab命令:Apache HTTP 服務(wù)器性能測試工具,是一個測試你Apache http服務(wù)器的工具,你可以通過這個工具指定一個單位時間內(nèi)向apache發(fā)出的請求數(shù)量來看看你的Apache和機(jī)器配合的性能如何。命令如下:
- /home/apache/bin/ab -c 20 -n100 –w http://localhost/phpinfo >1.html
-c: 同時向服務(wù)器端發(fā)送的請求數(shù)目,默認(rèn)狀態(tài)下是一次只執(zhí)行一個http請求。
-n: 執(zhí)行一次測試會話的時候所發(fā)出的請求數(shù)目。
-w:打印輸出結(jié)果到HTML表中,默認(rèn)的表是兩列n行白底黑框 。
ApacheBench)的測試數(shù)據(jù)的 requests per second (以下簡稱 rps)一項是指每秒服務(wù)器返回的頁面數(shù),經(jīng)過比較使用了 eAccelerator 后網(wǎng)頁速度明顯加快了。圖8 lynx瀏覽器的 HTML格式測試結(jié)果。
圖8 HTML格式測試結(jié)果
3.使用Zend Optimizer
Zend Optimizer用優(yōu)化代碼的方法來提高PHP 4.0應(yīng)用程序的執(zhí)行速度。實(shí)現(xiàn)的原理是對那些在被最終執(zhí)行之前由運(yùn)行編譯器(Run-Time Compiler)產(chǎn)生的代碼進(jìn)行優(yōu)化。一般情況下,執(zhí)行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。這意味著網(wǎng)站的訪問者可以更快的瀏覽網(wǎng)頁,從而完成更多的事務(wù),創(chuàng)造更好的客戶滿意度。更快的反應(yīng)同時也意味著可以節(jié)省硬件投資,并增強(qiáng)網(wǎng)站所提供的服務(wù)。所以,使用Zend Optimizer,就等于提高了電子商務(wù)的盈利能力。Zend Optimizer能給PHP用戶帶來很多益處,特別是那些運(yùn)營網(wǎng)站的人??焖龠\(yùn)行PHP程序可以顯著降低服務(wù)器的CPU負(fù)載,并可以減少一半的反應(yīng)時間,也就是從訪問者點(diǎn)擊鏈接到服務(wù)器開始讀取頁面之間的時間。
Zend Optimizer安裝是傻瓜化的,安裝向?qū)詣痈鶕?jù)你的選擇來修改php.ini幫助你啟動這個引擎。
軟件下載安裝:
wget http://downloads.zend.com/optimizer/3.0.0/ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
gunzip ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
tar vxf ZendOptimizer-3.0.0-linux-glibc21-i386.tar
cd ZendOptimizer-3.0.0-linux-glibc21-i386
- ./install
圖 9 Zend Optimizer安裝向?qū)?/P>
從新啟動Apache服務(wù)器:
- /etc/rc.d/init.d/httpd restart
打開Web頁面查看通過phpinfo()已經(jīng)可以看到圖,就表示Zend Optimizer安裝成功。
圖 10 Zend Optimizer安裝成功
然后可以使用ab命令進(jìn)行再次測試。也可以使用Siege(http://www.joedog.org/siege/ )進(jìn)行測試,它是一個壓力測試和評測工具,設(shè)計用于WEB開發(fā)這評估應(yīng)用在壓力下的承受能力:可以根據(jù)配置對一個WEB站點(diǎn)進(jìn)行多用戶的并發(fā)訪問,記錄每個用戶所有請求過程的相應(yīng)時間,并在一定數(shù)量的并發(fā)訪問下重復(fù)進(jìn)行。
【編輯推薦】