參與測試的加速器:Xcache,Opcache,hhvmphp
Xcache簡介html
前面已經介紹了PHP加速器的原理和功用(參見LAMP架構之PHP-FPM 服務器),xcache做爲目前使用普遍的PHP加速器之一,其性能比早期的eAccelerator加速器要優良,故本次就對比一下PHP程序在執行時加速器xcache對其的性能影響。緩存
安裝xcache服務器
# 安裝 tar xf xcache-3.0.3.tar.gz cd xcache-3.0.3 /usr/local/php/bin/phpize # xcache是做爲php的外接模塊安裝的 ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config make && make install # 安裝結束時,會出現相似以下行: Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ # 編輯php.ini,整合php和xcache: # 首先將xcache提供的樣例配置導入php.ini mkdir /etc/php.d # 這是前面安裝PHP時配置的配置文件掃描目錄 cp xcache.ini /etc/php.d # xcache.ini文件在xcache的源碼目錄中。 # 接下來編輯/etc/php.d/xcache.ini,找到extension開頭的行,修改成以下行: extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so # 若是php.ini文件中有多條extension指令行,要確保此新增的行排在第一位。 # 查看xcache是否已安裝成功: /usr/local/php/bin/php -m |grep -i xcache
Opcache簡介架構
新一代PHP加速器,由Zend公司研發,其實現原理與Xcache相似,都是把PHP執行後的數據緩衝到內存中從而避免重複的編譯過程,可以直接使用緩衝區已編譯的代碼從而提升速度,下降服務器負載,但性能卻比Xcache更加優越,詳見測試結果併發
安裝Opcache工具
wget http://pecl.php.net/get/zendopcache-7.0.2.tgz tar xzf zendopcache-7.0.2.tgz cd zendopcache-7.0.2 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install # 配置文件設置,可直接在php.ini的最後添加以下內容,但在此在PHP配置文件的掃描目錄php.d下配置新文件opcache.ini,易於管理,php-config-scan-dir是在編譯安裝PHP時定義的 # vi /etc/php.d/opcache.ini [opcache] zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/opcache.so opcache.memory_consumption=128 # 分配的內存大小,單位MB,即可以存儲多少預編譯的PHP代碼 opcache.interned_strings_buffer=8 # interned字符串佔內存大小,單位MB opcache.max_accelerated_files=4000 # 容許緩存的文件最大數量 opcache.revalidate_freq=60 # 多長時間檢查文件時間戳,以改變共享內存分配,單位爲s opcache.fast_shutdown=1 # 是否開啓快速關閉隊列功能,1爲開啓 opcache.enable_cli=1 # 容許緩存CLI下的PHP程序 #檢查模塊安裝成功:/usr/local/php/bin/php -m |grep -i opcache
hhvm簡介性能
HipHop VM(HHVM)是Facebook推出的用來執行PHP代碼的虛擬機,它是一個PHP的JIT(Just-In- Time)編譯器,同時具備產生快速代碼和即時編譯的優勢;測試
hhvm將PHP代碼編譯轉換成C++程序來執行,執行效率獲得顯著提高;spa
根據 Facebook透漏,HHVM在速度方面得到了顯著改進,比目前使用的PHP解釋器快60%,而使用內存減小90%
安裝hhvm
由於目前hhvm還處以研發階段,國內用於生產環境的還不多,安裝所需的環境比較複雜(如CentOS6.5下的boost-system和boost-filesystem的版本就太低),故本人還在調試測試階段,等出了測試結果,再將hhvm的測試結果一併貼出。
測試步驟
# 另找一臺虛擬機,對HTTPD服務器(192.168.1.110)進行壓力測試 # 測試工具使用Apache自帶的基準測試工具ab便可 # 測試方法以下: ab -c 20 -n 2000 http://192.168.1.110:8080/index.php # 注:測試採用20併發,在不影響訪問的狀況下,查看xcache加速器的加速效果;測試頁面使用上一講剛部署的phpMyAdmin的登陸頁面index.php便可 # 注:爲了更好的測試出PHP加速器的緩存特性,可連續多測試幾回,獲得穩定值
測試結果對比
從上圖能夠看出,PHP加速器對PHP程序的執行過程加速明顯;綜合每秒的請求數和PHP服務器的負載來看:
xcache使得PHP程序的執行效率提高了3-4倍;
Opcache使得PHP程序的執行效率提高了6-7倍;
聽說hhvm對PHP程序的加速效果更增強悍,敬請期待!