1.Xcache介紹 php
在很短的時間內,PHP 成爲了一種很是流行的開發 Web 應用程序的程序設計語言。對初學者來講,PHP易於安裝和學習。對於有經驗的開發人員而言,PHP(從 V5 開始)提供了強大的面向對象特性。PHP開發人員擁有龐大的羣體,大量的開源及商業庫和工具擴展了該核心語言的功能。PHP能迅速產生可視化結果,所以備受衆人推崇。 linux
與其餘開發Web 應用程序的腳本語言(包括Perl、Python 和 Ruby)類似,每次 HTTP請求調用時,PHP 代碼都會被解析和翻譯爲操做碼(PHP 引擎直接執行的原語指令 —— 相似於彙編語言)再執行。在要求很低或可忽略的狀況下,服務器看上去能當即執行這個複雜的解釋過程。可是一旦處理的頁面增長,解釋—— 從本質上說,重複工做——就會對服務器形成很大的負擔。在某些狀況下,「編譯」 PHP 代碼的時間會遠遠超過執行該代碼所需的時間。所以,當需求增長時,您經常會自作自受,由於處理這些不斷解釋和動態生成的頁面須要消耗更多的系統資源。 web
若您對處理器和 RAM 的預算沒有限制,那麼就大可沒必要經過優化應用棧(硬件、操做系統、數據庫、Web 服務器和 PHP 代碼)來保證站點的可響應性。然而,因爲資金一般都是最缺少的資源,因此改善性能是必不可少的。調優意味着對系統增長內存、修改操做系統參數、加速Web 或數據庫服務器、提升代碼效率或者這其中的一些組合。每一項都有其各自的做用。 數據庫
節約 CPU 週期的另外一種方法是減小運行 PHP 應用程序所需的重複工做。固然,沒有必要每次都把一樣的 PHP 代碼翻譯一遍。PHP 代碼被翻譯成操做碼後,能夠把它保存起來並重復使用 —— 直到原始代碼被修改。確實,緩存—— 用於保存和重用 PHP 操做碼 —— 是幾種 PHP 加速器內部的機制,包括開源 Alternative PHP Cache (APC)、支持 PHP 的 Turck MMCache、XCache、eAccelerator和商業 Zend Platform。後三類加速器可以緩存和優化字節碼,這爲系統提供了更多的速度提高。下面咱們將探究如何安裝、部署和配置 XCache。XCache 相對較新,可是不少站點使用它的效果都很好。此外,XCache 易於構建、安裝和配置,由於它是作爲 PHP 擴展實現的。不需對 Apache和 PHP 進行重編譯。 windows
2.安裝Xcache 緩存
cd /tmp/ 安全
wget http://xcache.lighttpd.net/pub/Releases/3.0.3/xcache-3.0.3.tar.gz 服務器
tar zxvf xcache-3.0.3.tar.gz 工具
cd xcache-3.0.3 性能
/usr/local/php/bin/phpize
./configure–enable-xcache–enable-xcache-coverager–enable-xcache-optimizer–with-php-config=/usr/local/php/bin/php-config
make && make install
–enable-xcache 表示啓用Xcache支持;
–enable-xcache-coverager 表示包含用於測量加速器功效的附加特性;
–enable-xcache-optimizer表示啓用操做碼優化
安裝完畢後系統會提示xcache.so模塊生成路徑,本次生成路徑爲/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
生成Xcache管理員的祕密(MD5密文)
root@linux :~$ echo -n "123456" | md5sum
e10adc3949ba59abbe56e057f20f883e
3.配置Xcache
修改php配置文件php.ini
配置時咱們能夠參考xcache的配置模板xcache.ini,此文件位於Xcache安裝程序中
vi/usr/local/php/etc/php.ini
[xcache-common]
extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so"
;非windows 例子, xcache.so路徑
[xcache.admin]
xcache.admin.enable_auth = On
;開啓驗證
xcache.admin.user = "xcache"
;驗證名
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
;md5後的驗證密碼, 亦即echo -n "123456" | md5sum,留空則禁用管理頁面.
[xcache]
xcache.shm_scheme ="mmap"
; 決定 XCache 如何從系統分配共享內存
xcache.size=60M
; 0 禁止, 非 0 則啓用緩存器. 請注意您系統所容許的 mmap 最大值.
xcache.count =1
; 指定將 cache 切分紅多少塊.(cat/proc/cpuinfo |grep -c processor)
xcache.slots =8K
; 只是做爲 hash 槽個數的參考值, 您能夠放心地緩衝超過這個個數的項目.
xcache.ttl=0
; 設置緩衝項目的 Ttl (Time To Live) 值, 0=永不過時.
xcache.gc_interval =0
; 檢查過時項目, 回收內存空間的間隔.
xcache.var_size=4M
xcache.var_count =1
xcache.var_slots =8K
; 同上, 不過用於數據緩衝而不是 opcode 緩衝.
xcache.var_ttl=0
; xcache_(get|set|inc|dec) 等的默認 ttl 值.
xcache.var_maxttl=0
; 最大 ttl 值, 程序沒法指定超過這個最大值的 ttl.
xcache.var_gc_interval =300
xcache.test =Off
xcache.readonly_protection = On
;若是啓用了 ReadonlyProtection, 將會略微下降性能, 可是會提升必定的安全係數. 這個選項對於xcache.mmap_path = /dev/zero 無效.
xcache.mmap_path ="/tmp/xcache"
;緩存文件,不是目錄,須要手動建立
xcache.coredump_directory =""
xcache.cacher =On
;使用/不使用 opcode 緩存器. xcache.size = 0 時無效.
xcache.stat=On
;使用 stat() 發現檢查腳本更新.
xcache.optimizer =Off
[xcache.coverager]
xcache.coverager =On
;啓用代碼覆蓋信息採集到. 啓用後xcache.coveragedump_directory 設置以及xcache_coverager_start/stop/get/clean() 纔可使用. (啓用後會對下降影響)
xcache.coverager_autostart = On
;每一個頁面請求自動調用 xcache_coverager_start
xcache.coveragedump_directory =""
生成Xcache緩存文件
touch /tmp/xcache
chmod 777 /tmp/xcache
拷貝Xcache管理程序到網站根目錄下
cp -a /tmp/xcache-1.3.3/ htdocs/ 網站根目錄/xadmin
而後從新啓動php和web服務器
而後訪問http://localhost/xadmin,用戶名爲xcache 密碼爲123456;另外,還能夠經過phpinfo來驗證PHP是否支持Xcache
測試代碼
<?php
xcache_set('configs', serialize(new Memcached()));
var_dump(unserialize(xcache_get('configs')));
xcache_set('key', 'testtttt');
var_dump(xcache_get('configs'));
if (xcache_isset('configs')){
echo 'key存在';
var_dump(xcache_get('configs'));
xcache_unset('configs');
} else {
echo 'key不存在';
}
?>