PHPAPC缓存-创新互联

参见官方文档

坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都水处理设备小微创业公司专业提供成都企业网站建设营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。

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();' |grep apc apc apc.cache_by_default => On => On apc.canonicalize => On => On apc.coredump_unmap => Off => Off apc.enable_cli => Off => Off apc.enabled => On => On apc.file_md5 => Off => Off apc.file_update_protection => 2 => 2 apc.filters => no value => no value apc.gc_ttl => 3600 => 3600 apc.include_once_override => Off => Off apc.lazy_classes => Off => Off apc.lazy_functions => Off => Off apc.max_file_size => 1M => 1M apc.mmap_file_mask => no value => no value apc.num_files_hint => 1000 => 1000 apc.preload_path => no value => no value apc.report_autofilter => Off => Off apc.rfc1867 => Off => Off apc.rfc1867_freq => 0 => 0 apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS apc.rfc1867_prefix => upload_ => upload_ apc.rfc1867_ttl => 3600 => 3600 apc.serializer => default => default apc.shm_segments => 1 => 1 apc.shm_size => 32M => 32M apc.shm_strings_buffer => 4M => 4M apc.slam_defense => On => On apc.stat => On => On apc.stat_ctime => Off => Off apc.ttl => 0 => 0 apc.use_request_time => On => On apc.user_entries_hint => 4096 => 4096 apc.user_ttl => 0 => 0 apc.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扩展,则可以看到图表

PHP APC缓存

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      对每个请求是否检查要访问的文件是否被更改。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:PHPAPC缓存-创新互联
本文来源:http://myzitong.com/article/eisjj.html