php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
本文实例讲述了php加速缓存器opcache,apc,xcache,eaccelerator原理与配置方法。分享给大家供大家参考,具体如下:
一、opcache
opcache 通过将 php 脚本预编译的字节码存储到共享内存中来提升 php 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 php 脚本的开销。
php 5.5.0 及后续版本中已经绑定了 opcache 扩展。 对于 php 5.2,5.3 和 5.4 版本可以使用pecl扩展中的 opcache 库。
windows下的php扩展下载地址:
http://windows.php.net/downloads/pecl/releases/
打开php.ini文件,找到[opcache]
; dll地址 extension=php_opcache.dll ; 开关打开 opcache.enable=1 ; 开启cli opcache.enable_cli=1 ; 可用内存, 酌情而定, 单位为:mb opcache.memory_consumption=128 ; zend optimizer + 暂存池中字符串的占内存总量.(单位:mb) opcache.interned_strings_buffer=8 ; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值 opcache.max_accelerated_files=10000 ; opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, (单位:秒) opcache.revalidate_freq=1 ; 打开快速关闭, 打开这个在php request shutdown的时候回收内存的速度会提高 opcache.fast_shutdown=1
二、apc
alternative php cache (apc) 是一个开放*的php opcode 缓存。它的目标是提供一个*、 开放,和健全的框架用于缓存和优化php的中间代码。
下载apc扩展dll,选择你对应的php版本
http://windows.php.net/downloads/pecl/releases/apc/
把下载的php_apc.dll放入php的ext扩展目录下。
打开php.ini文件,配置如下:
[apc] extension=php_apc.dll apc.enabled=1 ; 共享内存块的数目 apc.shm_segments=1 ; 共享内存块的大小(单位:mb) apc.shm_size=64 ; 优化级别,更高的值则使用更主动的优化 apc.optimization=1 ; 源文件的数目,不确定设置为0 apc.num_files_hint=0 ; 缓存条目在缓冲区中允许逗留的秒数 apc.ttl=7200 ; 针对每个用户缓存条目在缓冲区中允许逗留的秒数 apc.user_ttl=7200 ; 缓存条目在垃圾回收表中能够存在的秒数 apc.gc_ttl=7200 ; 文件写锁 apc.write_lock=on
三、xcache
xcache是一个开源的 opcode 缓存器/优化器。
下载xcache,选择对应php版本的xcache
http://xcache.lighttpd.net/pub/releases/
把php_xcache.dll放到php的ext目录下。
打开php.ini,配置如下:
[xcache-common] extension = php_xcache.dll [xcache.admin] xcache.admin.enable_auth = on xcache.admin.user = "admin" xcache.admin.pass = "md5后你的密码" [xcache] ; 选择底层内存共享实现方案 xcache.shm_scheme = "mmap" xcache.size = 128m ; 设置为cpu数 xcache.count = 1 ; 只是个参考值 xcache.slots = 8k ; 缓存时间 xcache.ttl = 1200 ; 垃圾回收的时间间隔 xcache.gc_interval = 1200 ; 同上,针对变量缓存设置 xcache.var_size = 4m xcache.var_count = 1 xcache.var_slots = 8k xcache.var_ttl = 1200 ; 变量最大缓存时间 xcache.var_maxttl = 7200 xcache.var_gc_interval = 1200 xcache.var_namespace_mode = 0 xcache.var_namespace = "" xcache.readonly_protection = off ; 对于win系统,这里不是文件路径 xcache.mmap_path = "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 = ""
四、eaccelerator
eaccelerator是一个*开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得php脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。
下载eaccelerator
http://www.sitebuddy.com/php/accelerators/eaccelerator_windows_binaries_builds
把下载到的eaccelerator_ts.dll放到php的ext目录下。
打开php.ini,配置如下:
[eaccelerator] extension="eaccelerator_ts.dll" eaccelerator.shm_size="16" eaccelerator.cache_dir="设置缓存目录" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.log_file = "设置日志文件" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"