前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[笔记] 使用 opcache 优化生产环境PHP

[笔记] 使用 opcache 优化生产环境PHP

作者头像
码农编程进阶笔记
发布2021-07-20 15:53:39
7150
发布2021-07-20 15:53:39
举报

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。

一、php.ini配置opchche示例

代码语言:javascript
复制
  1. [opcache]
  2. zend_extension=opcache.so
  3. ; 开关打开
  4. opcache.enable=
  5. opcache.enable_cli=
  6. ;共享内存大小, 酌情而定,单位 megabytes
  7. opcache.memory_consumption=
  8. ;interned string的内存大小, 也可调
  9. opcache.interned_strings_buffer=
  10. ;最大缓存的文件数目,命中率不到 % 的话, 可以试着提高这个值
  11. opcache.max_accelerated_files=
  12. ;s检查一次文件更新
  13. opcache.revalidate_freq=
  14. ;打开快速关闭, 打开这个在PHP Request Shutdown的时候 会收内存的速度会提高
  15. opcache.fast_shutdown=
  16. ;不保存文件/函数的注释
  17. opcache.save_comments=
  18. ; 是否快速关闭, 打开后在PHP Request Shutdown的时候回收内存的速度会提高
  19. opcache.fast_shutdown=

二、部分配置参数说明

  • opcache.revalidate_freq 这个配置选项用于设置缓存的过期时间,如果设置为0,每次请求时,都会检查文件是否修改,很耗资源,所以如果暂时不需要使用opcache,直接把opcache.enable设置为0即可。
  • opcache.validate_timestamps 配置为1时,会根据revalidate_freq设定的值检查更新代码;设置为0时,永不检查。

当需要一次更新大量代码的时候,可以设置为0,上传全部完成后,再设置为1。避免上传代码造成系统的不稳定。

  • opcache.max_accelerated_files 真实的取值是在质数集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一个比设置值大的质数。

你可以运行 find . -type f -print | grep php | wc -l 这个命令来快速计算你的代码库中的PHP文件数。

三、推荐配置

代码语言:javascript
复制
  1. 开发模式下推荐,直接禁用opcache扩展更好
  2. opcache.revalidate_freq=0
  3. opcache.validate_timestamps=1
  4. opcache.max_accelerated_files=3000
  5. opcache.memory_consumption=192
  6. opcache.interned_strings_buffer=16
  7. opcache.fast_shutdown=1
  8. 多台机器集群模式或者代码更新频繁时推荐,可以兼顾性能,方便代码更新
  9. opcache.revalidate_freq=300
  10. opcache.validate_timestamps=1
  11. opcache.max_accelerated_files=7963
  12. opcache.memory_consumption=192
  13. opcache.interned_strings_buffer=16
  14. opcache.fast_shutdown=1
  15. 稳定项目推荐,性能最好
  16. opcache.revalidate_freq=0
  17. opcache.validate_timestamps=0
  18. opcache.max_accelerated_files=7963
  19. opcache.memory_consumption=192
  20. opcache.interned_strings_buffer=16
  21. opcache.fast_shutdown=1

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家

资料获取方式:

  1. 扫描下方二维码,后台回复关键字
  2. 点击这里直通车 直通车2
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农编程进阶笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、php.ini配置opchche示例
  • 二、部分配置参数说明
  • 三、推荐配置
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档