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不存在';
}
?>