PHP Opcache 的正确使用

关键配置

  1. PHP opcache 配置、状态与清除
  2. opcache.memory_consumption=512 //内存块大小,单位是M,cli和fpm各自有一个内存块
  3. opcache.max_accelerated_files=100000 //内存中最多可以缓存多少个PHP文件
  4. opcache.max_wasted_percentage=5 //默认是5,浪费内存的百分占比,不能超过此值
  5. opcache.validate_timestamps=0 // =1会根据revalidate_freq设定的值检查更新代码,=0永不检查
  6. opcache.revalidate_freq=2 //检测php代码是否更改的间隔(秒)

注意事项

  1. PHP Opcache 注意事项以及调优
  2. 当 opcache 在某些情况下内存满时,它将擦除所有缓存条目并从空缓存开始,产生缓存击穿:许多请求同时生成相同的缓存条目。
  3. opcache 检测内存是否已满的三个指标:
    • opcache.memory_consumption 默认为 64(MB)
    • opcache.max_accelerated_files 默认为 2000 个可缓存文件,最大值为 100000
    • opcache.max_wasted_percentage 默认是5,浪费内存的百分占比,不能超过此值
  4. 为了找到正确的配置,可以打印 opcache_get_status(false)
    • oom_restarts 内存满了产生重启的次数
    • last_restart_time 最后重启的时间
    • current_wasted_percentage 当前浪费内存的百分占比

线上opcache.validate_timestamps=0更新代码后如何更新opcache

  1. 平滑重启 php-fpm
  2. 通过 opcache_reset () 函数
  3. 第三方库:gordalina.github.io/cachetool/
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!