PHP APC缓存
参见官方文档
http://php.net/manual/en/book.apc.php
The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.
通过以下方式可以查看是否安装了APC扩展
$php-r'phpinfo();'|grepapcapcapc.cache_by_default=>On=>Onapc.canonicalize=>On=>Onapc.coredump_unmap=>Off=>Offapc.enable_cli=>Off=>Offapc.enabled=>On=>Onapc.file_md5=>Off=>Offapc.file_update_protection=>2=>2apc.filters=>novalue=>novalueapc.gc_ttl=>3600=>3600apc.include_once_override=>Off=>Offapc.lazy_classes=>Off=>Offapc.lazy_functions=>Off=>Offapc.max_file_size=>1M=>1Mapc.mmap_file_mask=>novalue=>novalueapc.num_files_hint=>1000=>1000apc.preload_path=>novalue=>novalueapc.report_autofilter=>Off=>Offapc.rfc1867=>Off=>Offapc.rfc1867_freq=>0=>0apc.rfc1867_name=>APC_UPLOAD_PROGRESS=>APC_UPLOAD_PROGRESSapc.rfc1867_prefix=>upload_=>upload_apc.rfc1867_ttl=>3600=>3600apc.serializer=>default=>defaultapc.shm_segments=>1=>1apc.shm_size=>32M=>32Mapc.shm_strings_buffer=>4M=>4Mapc.slam_defense=>On=>Onapc.stat=>On=>Onapc.stat_ctime=>Off=>Offapc.ttl=>0=>0apc.use_request_time=>On=>Onapc.user_entries_hint=>4096=>4096apc.user_ttl=>0=>0apc.write_lock=>On=>On
1.安装APC扩展
tar -zxvf APC-3.1.14.tgz
cd APC-3.1.14
phpize
./configure --with-php-config=/data/app_platform/php/bin/php-config
make && make install
2.配置php.ini
以下是建议使用的参数
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=7200
apc.user_ttl=7200
apc.enable_cli=1
3.配置APC参数
参考文档
http://php.net/manual/en/apc.configuration.php
有两个首要考虑的问题是:1.给APC分配多少内存空间。2.对于每个请求是否让APC检查一个文件是否被更改。这个两个参数是apc.shm_size和apc.stat
APC自带一个监控页面apc.php,可以从源码包中复制apc.php到一个nginx虚拟主机,然后通过http://xxxxxx/apc.php查看APC缓存的状态。
如果安装PHP的GD扩展,则可以看到图表
Cache full count 会显示达到最大缓存容量的次数.达到最大缓存容量后,APC不得不将一些在上一个apc.ttl设置的时间段内没有被访问的文件进行强制清除。 如果APC配置恰当,Cache full count的值会很小。如果缓存被持续填满并强制释放,这会对脚本性能产生影响。为APC分配更多的内存是减小Cache full count的值的最简便方法,如不然,可以使用apc.filters对缓存的文件进行过滤.如果APC编译时使用MMAP(Memory Mapping)支持,APC只使用一个内存分段。如果使用SHM(SysV Shared Memory),APC会使用多个内存分段,在/proc/sys/kernel/shmmax 设置最大限制。通常情况下,推荐使用MMAP,因为可以当WEB SERVER重启后可以更快地回收内存空间。
apc.shm_size 设置每个共享内存分段的大小,以MB表示。
apc.enabled 如果APC是静态编译到PHP代码中,可以将这个值设为0以关闭APC功能。
apc.ttl 设置每个存储条目的过期时间,以秒为单位.如果设置为0,那么APC可能一直缓存的都是陈旧的条目,新的条目也没有办法缓存
apc.user_ttl 设置每个用户缓存条目的过期时间,以秒为单位.
apc.filters 正则匹配需要过滤掉的文件
apc.stat 对每个请求是否检查要访问的文件是否被更改。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。