PHP APC缓存
admin
2023-07-01 01:23:09
0

参见官方文档

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



相关内容

热门资讯

美国这次,真没占到任何便宜 看来,美国这次,真没占到任何便宜。我之前说过,美国重新定义了什么是“自卫”、什么是“停火”,现在是美...
浙江能工取得低能耗夜景照明装置... 国家知识产权局信息显示,浙江能工建设集团有限公司取得一项名为“一种低能耗夜景照明装置”的专利,授权公...
芯片三巨头齐聚!COMPUTE... 来源:市场资讯 (来源:财联社) 《科创板日报》5月30日讯 6月1日至5日,COMPUTEX 20...
全国科技工作者日,向他们致敬! 中国教科文卫体工会 中国科学院工会 联合开展 “建功‘十五五’ 科创向未来 ——致敬新时代科技追梦人...
美防长:美伊谈判仍在继续,保留... △赫格塞思(资料图)当地时间5月30日,美国国防部长赫格塞思在新加坡香格里拉对话会上表示,美方力求美...
原创 华... 华为公布了一个名叫“韬定律”的东西。说出来你可能不信,这套新玩法,要把西方称霸了60年的芯片底层逻辑...
原创 华... 在华为畅享90 Plus和90 Pro Max取得出众的市场成绩之后,有消息指出,华为畅享90系列接...
一颗流星在美国马萨诸塞州上空爆... 当地时间5月30日,一颗流星在美国东北部马萨诸塞州近海上空爆炸,并引发巨响。该州多地居民均听到爆炸声...
鸿蒙智家框架合作协议签约仪式在... 5月29日,鲁班兄弟装饰工程有限公司与华为终端有限公司在华为云南区域总部举行鸿蒙智家框架合作协议签约...
中国科学院工程热物理所在超临界... 以超临界二氧化碳(S-CO₂)为代表的新型超临界流体正以其独特优势,在制冷、发电、储能等领域拓展应用...