Xcache緩存器的介紹、使用及配置

碼頭工人 11年前發布 | 73K 次閱讀 緩存組件 XCache

1.Xcache介紹

   在很短的時間內,PHP 成為了一種非常流行的開發 Web 應用程序的程序設計語言。對初學者來說,PHP易于安裝和學習。對于有經驗的開發人員而言,PHP(從 V5 開始)提供了強大的面向對象特性。PHP開發人員擁有龐大的群體,大量的開源及商業庫和工具擴展了該核心語言的功能。PHP能迅速產生可視化結果,因此備受眾人推崇。

與其他開發Web 應用程序的腳本語言(包括PerlPython  Ruby)相似,每次 HTTP請求調用時,PHP 代碼都會被解析和翻譯為操作碼PHP 引擎直接執行的原語指令 —— 類似于匯編語言)再執行。在要求很低或可忽略的情況下,服務器看上去能立即執行這個復雜的解釋過程。但是一旦處理的頁面增加,解釋—— 從本質上說,重復工作——就會對服務器造成很大的負擔。在某些情況下,編譯” PHP 代碼的時間會遠遠超過執行該代碼所需的時間。因此,當需求增加時,您常常會自食其果,因為處理這些不斷解釋和動態生成的頁面需要消耗更多的系統資源。

若您對處理器和 RAM 的預算沒有限制,那么就大可不必通過優化應用棧(硬件、操作系統、數據庫、Web 服務器和 PHP 代碼)來保證站點的可響應性。然而,由于資金通常都是最缺乏的資源,所以改善性能是必不可少的。調優意味著對系統增加內存、修改操作系統參數、加速Web 或數據庫服務器、提高代碼效率或者這其中的一些組合。每一項都有其各自的作用。

節約 CPU 周期的另一種方法是減少運行 PHP 應用程序所需的重復工作。當然,沒有必要每次都把同樣的 PHP 代碼翻譯一遍。PHP 代碼被翻譯成操作碼后,可以把它保存起來并重復使用 —— 直到原始代碼被修改。確實,緩存—— 用于保存和重用 PHP 操作碼 —— 是幾種 PHP 加速器內部的機制,包括開源 Alternative PHP Cache (APC)、支持 PHP  Turck MMCacheXCacheeAccelerator和商業 Zend Platform。后三類加速器能夠緩存和優化字節碼,這為系統提供了更多的速度提升。下面我們將探究如何安裝、部署和配置 XCacheXCache 相對較新,但是很多站點使用它的效果都很好。此外,XCache 易于構建、安裝和配置,因為它是做為 PHP 擴展實現的。不需對 Apache PHP 進行重編譯。

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

然后重新啟動phpweb服務器

然后訪問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不存在';

}

?>

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!