设为首页 收藏本站
查看: 1122|回复: 0

[经验分享] PHP APC缓存

[复制链接]

尚未签到

发表于 2018-12-21 11:09:55 | 显示全部楼层 |阅读模式
  参见官方文档

  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扩展,则可以看到图表


  

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

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653966-1-1.html 上篇帖子: php加速模块eaccelerator的安装 下篇帖子: lamp环境下php加速
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表