[笔记] 使用 opcache 优化生产环境PHP[通俗易懂]

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

大家好,又见面了,我是全栈君。

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

一、php.ini配置opchche示例

[opcache]
zend_extension=opcache.so
; 开关打开
opcache.enable=1
opcache.enable_cli=1
;共享内存大小, 酌情而定,单位 megabytes
opcache.memory_consumption=256      
;interned string的内存大小, 也可调
opcache.interned_strings_buffer=8
;最大缓存的文件数目,命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=4000
;60s检查一次文件更新
opcache.revalidate_freq=60
;打开快速关闭, 打开这个在PHP Request Shutdown的时候  会收内存的速度会提高
opcache.fast_shutdown=1
;不保存文件/函数的注释
opcache.save_comments=0  
; 是否快速关闭, 打开后在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1

二、部分配置参数说明

  • 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文件数。

三、推荐配置

开发模式下推荐,直接禁用opcache扩展更好
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=3000
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
多台机器集群模式或者代码更新频繁时推荐,可以兼顾性能,方便代码更新
opcache.revalidate_freq=300
opcache.validate_timestamps=1
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
稳定项目推荐,性能最好
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1

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

资料获取方式:

  1. 扫描下方二维码,后台回复关键字

  2. 或   点击这里直通车     直通车2  

[笔记] 使用 opcache 优化生产环境PHP[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111837.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 维度建模方法论[通俗易懂]

    维度建模方法论[通俗易懂]维度建模方法一、前言本人学习《数仓工具箱》的学习总结,纯学习分享,供大家参考。二、经典数仓架构理论围绕着维度建模,那就不得不了解,早期的数据仓库构架方法。这里介绍一下两个经典的数仓架构理论。2.1、Kimball模式Kimball模式从流程上看是是自顶向下的,即从数据集市到数据仓库再到数据源(先有数据集市再有数据仓库)的一种敏捷开发方法。对于Kimball模式,数据源每每是给定的若干个数据库表,数据较为稳定但是数据之间的关联关系比较复杂,须要从这些OLTP中产生的事务型数据结构抽取出分析型

    2022年9月23日
    2
  • 手把手教你Tomcat配置环境变量以及验证方法

    手把手教你Tomcat配置环境变量以及验证方法场景现在要将Tomcat配置进环境变量。实现以win7为例,找到桌面计算机图表,右键属性。或者打开计算机,找到系统属性。然后找到高级系统设置找到环境变量点击系统变量下的新建找到Tomcat所在目录变量名为:CATALINA_BASE内容为Tomcat所在路径,这里是上面的路径如图:点击确定同理再新建系统变量,变量名…

    2022年6月4日
    32
  • 5.1活动规划_上海市城市规划条例

    5.1活动规划_上海市城市规划条例规划范围管理是为记录如何定义,确认和控制项目范围及产品范围,而创建范围管理计划的过程。本过程的主要作用是:在整个项目期间对如何管理项目提供指南和方向。范围管理计划是项目或项目管理计划的组成部分,描述将如何定义、制定、监督、控制和确认项目范围。 …

    2022年9月15日
    1
  • 微信模拟地理位置_伪装微信地理位置

    微信模拟地理位置_伪装微信地理位置1.允许应用程序打开系统窗口,显示其他应用程序2.允许应用程序访问GMail账户列表3.允许应用程序请求从AccountManager验证4.允许应用程序管理AccountManager中的账户列表5.允许应用程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息6.允许应用程序获取网络信息状态7.允许应用程序访问网络连接8.允许应用程序获取模拟定位信息用于开发者调试应用9.允许应…

    2022年6月12日
    61
  • Java集合篇:List总结

    Java集合篇:List总结

    2021年10月4日
    42
  • python pymssql_python pymssql

    python pymssql_python pymssql前言最近在学习python,发现好像没有对pymssql的详细说明,于是乎把官方文档学习一遍,重要部分做个归档,方便自己以后查阅。pymssql是python用来连接MicrosoftSQLServer的一个工具库(package)。其包含两个模块:pymssql:遵从DB-API_mssql:性能更佳、更易于使用从版本2.1.x起,整个库的实现基于FreeTDSpymssql的架构如下:在W…

    2025年7月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号