|
xcache 安装前后对比CPU从60%下降到20%
安装前页面执行时间:0.9s
安装后页面执行时间:0.08s
单纯页面执行时间看效果很明显,内存占用稍微多了些。
安装步骤:
一、下载对应 php 版本的 xcache:
http://xcache.lighttpd.net/pub/Releases/
不是找最新版本哈,一般是找和自己 php 版本接近的版本。
例如我的 php 版本是 5.2.8 下载的是这个版本 http://xcache.lighttpd.net/pub/R ... 5.2.5-nts-Win32.zip
二、安装 xcache
解压后找到 php_xcache.dll,将该文件放入到 php.ini 中 extension_dir 指定的目录下,一般是 php/ext/ 目录下
三、修改 php.ini 的设置
如果安装了 zend,搜索(一般在最下面)
在这行上面加- zend_extension_ts = "D:\server\php\ext\php_xcache.dll"
复制代码 其中的 D:\server\php\ext 是我的 php 的 ext 路径
如果没安装 zend,直接在最后面加刚才那句
然后在php.ini 的最后面加以下配置- [xcache.admin]
- xcache.admin.enable_auth = off
- xcache.admin.user = ""
- xcache.admin.pass = ""
- [xcache]
- xcache.shm_scheme = "mmap"
- xcache.size = 64M
- xcache.count = 4
- xcache.slots = 8K
- xcache.ttl = 1800
- xcache.gc_interval = 1800
- xcache.var_size = 64M
- xcache.var_count = 4
- xcache.var_slots = 8K
- xcache.var_ttl = 0
- xcache.var_maxttl = 0
- xcache.var_gc_interval = 300
- xcache.var_namespace_mode = 0
- xcache.var_namespace = ""
- xcache.readonly_protection = Off
- xcache.mmap_path = "/tmp/xcache"
- xcache.coredump_directory = ""
- xcache.coredump_type = 0
- xcache.disable_on_crash = Off
- xcache.experimental = Off
- xcache.cacher = On
- xcache.stat = On
- xcache.optimizer = Off
- [xcache.coverager]
- xcache.coverager = Off
- xcache.coverager_autostart = On
- xcache.coveragedump_directory = ""
复制代码 其中需要注意的是
xcache.size 和 xcache.var_size
xcache.count 和 xcache.var_count
xcache.slots 和 xcache.var_slots
设置成一样的
xcache.size 一般64M够用
xcache.count 为自己的CPU数
详细每项设置的说明,在安装包的 xcache-zh-gb2312.ini 文件
四、修改完 php.ini 后,保存,重启IIS
如果不想重启,或者说想先测试一下,在需要启用的站点对应的应用程序池上右键点回收
五、配置 Discuz! 的配置文件
打开 config/config_global.php
找到- $_config['memory']['xcache'] = '0';
复制代码 改成- $_config['memory']['xcache'] = '1';
复制代码 问题解答:
1、用 zend_extension_ts 而不用 extension 主要是因为用 extension 的方式引入可能会出现错误
2、把 zend_extension_ts 放在 [Zend] 前,是为了防止出现- Fatal error: [Zend Optimizer] Zend Optimizer *** is incompatible with XCache 1.2.2
复制代码 这种错误
3、 zend_extension_ts 使用了绝对路径,是为了防止出现意外错误。
配置中文解释- ;; 本文件只是例子, 请在 php.ini 里设置以便生效
- [xcache-common]
- ;; 安装成 zend extension (推荐), 路径一般是 "$extension_dir/xcache.so"
- zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
- ;; Windows 系统例子:
- zend_extension_ts = c:/php/extensions/php_xcache.dll
- ;; 或者您也可把 XCache 安装成 extension, 注意确保您的 extension_dir 设置正确, 并把 xcache.so 或者 php_xcache.dll 放到该目录里面
- ; extension = xcache.so
- ;; 或者 Win32 系统:
- ; extension = php_xcache.dll
- [xcache.admin]
- xcache.admin.enable_auth = On
- xcache.admin.user = "mOo"
- ; xcache.admin.pass = md5($您的密码)
- xcache.admin.pass = ""
- [xcache]
- ; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明
- ; select low level shm/allocator scheme implemenation
- xcache.shm_scheme = "mmap"
- ; 禁用: xcache.size=0
- ; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
- xcache.size = 0M
- ; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
- xcache.count = 1
- ; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)
- xcache.slots = 8K
- ; 缓存项目的 ttl, 0=永久
- xcache.ttl = 0
- ; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
- xcache.gc_interval = 0
- ; 同上, 只是针对变量缓存设置
- xcache.var_size = 0M
- xcache.var_count = 1
- xcache.var_slots = 8K
- ; 默认, 允许 ini_set()
- xcache.var_ttl = 0
- ; 最大ttl值
- xcache.var_maxttl = 0
- xcache.var_gc_interval = 300
- ; 仅测试用
- xcache.test = Off
- ; /dev/zero 时无效
- xcache.readonly_protection = Off
- ; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).
- ; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"
- ; 2 个 php 组不会共享同一个 /tmp/xcache
- ; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
- xcache.mmap_path = "/dev/zero"
- ; 仅用于 *nix 系统
- ; 设置为空(禁用) 或者类似 "/tmp/phpcore/"
- ; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)
- xcache.coredump_directory = ""
- xcache.cacher = On
- xcache.stat = On
- xcache.optimizer = Off
- [xcache.coverager]
- ; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off
- xcache.coverager = Off
- ; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
- ; 依赖于 xcache.coverager=On
- xcache.coveragedump_directory = ""
复制代码 |
|