博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xcache缓存器的介绍、使用及配置
阅读量:7193 次
发布时间:2019-06-29

本文共 3673 字,大约阅读时间需要 12 分钟。

hot3.png

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 

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 :~$ 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

12163014_4nVh.png

12163014_TEKx.png

测试代码

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

}

?>

转载于:https://my.oschina.net/u/574366/blog/183970

你可能感兴趣的文章
第三节 在shell脚本中进行for循环
查看>>
Java Script 中定义对象的几种方式
查看>>
mysql编译安装完成后,启动时报错The server quit without updating PID file
查看>>
MySQL 错误总结续
查看>>
Nginx并发连接限制
查看>>
BGP的状态
查看>>
javascript声明二维数组
查看>>
ssh 操作 esxi 基本命令
查看>>
微软携手均衡科技提供箱包行业ERP解决方案
查看>>
批量自动安装常用软件
查看>>
在Ubuntu上,使用SWT嵌入AWT/SWING代码导致Eclipse崩溃问题
查看>>
Mysql 的一些优化 (MyISAM和InnoDB)
查看>>
Linux中特殊符号的用法
查看>>
2.5-ls命令
查看>>
1.1-php编译安装
查看>>
记华为S5700S-28P-LI-AC一次重写VRP的经历
查看>>
Varnish的简单使用
查看>>
OGG运维优化脚本(十四)-信息同步类--定义文件自动下发
查看>>
策略模式
查看>>
字符设备(二)
查看>>