[笔记] 使用 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  

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

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

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


相关推荐

  • python里面requests库(python如何爬取网页数据)

    一、什么是RequestsRequests是⽤Python语⾔编写,基于urllib,采⽤Apache2Licensed开源协议的HTTP库。它⽐urllib更加⽅便,可以节约我们⼤量的⼯作,完全满⾜HTTP测试需求。⼀句话——Python实现的简单易⽤的HTTP库二、安装Requests库进入命令行win+R执行命令:pipinstallrequests…

    2022年4月11日
    54
  • 零基础python从入门到精通(Python从入门到项目实践 吾爱破解)

    文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python变量1.变量定义理解2.变量名命名3.分

    2022年4月17日
    70
  • 基于单片机的毕业设计简单点的_毕业设计设计思路范文

    基于单片机的毕业设计简单点的_毕业设计设计思路范文单片机毕业设计不用愁!!30篇单片机毕业设计参考案例30篇单片机毕业设计参考案例 这篇文章分享给大四的小伙伴,是时候该准备毕业设计了吧,别偷懒了,第二学期就准备实习了喔,所以小编我就开始为你们准备资料啦,30篇单片机毕业设计参考案例给你们啦,有什么不懂的问题可以加群讨论:813238832。下面就是案例: 更多单片机、物联网,MTK和proteus等资料分享,持续增加中,敬请关…

    2022年10月4日
    2
  • idea如何设置调用方法时提示方法注释

    idea如何设置调用方法时提示方法注释设置如下:File—>Settings(Ctrl+Alt+s)—>Editor—>General—>看下图

    2022年6月13日
    151
  • Python批量修改文件名,文件再多也只要一秒,省时又不闹心

    Python批量修改文件名,文件再多也只要一秒,省时又不闹心前言嗨喽!大家好,这里是魔王对于电脑中的文件夹啊,我们那是新建一个又一个啊,有时候,我们整理资料的时候就会发现,文件夹那是一个杂乱无章,一个一个的去修改太浪费时间,咋今天就来分享一个小技巧:批量修改文件名一、在原有的名字前中后批量加字随意一点,这是我刚刚新建的文件夹和我存放的路径。我们来看看代码,我都详细注释了。importos#导入模块filename=’C:\\Users\\Administrator\\Desktop\\123’#文件地址list_path=os.l

    2025年7月10日
    2
  • mysql shell创建数据库_mysql怎么建立数据库

    mysql shell创建数据库_mysql怎么建立数据库#!/bin/shSHELL_NAME=GetTabStript.sh/bin/rm-fCreateTable.sql/bin/rm-ftmp.sql##获取数据库用户名、密码、实例,属主,表名称列表信息;执行格式如下:##指定表:shGetTabStript.sh”dbrwdadm””dbrwdadm””chnrwd””DBRWDADM””DCUSTMSGSCHNKPI”…

    2022年9月8日
    7

发表回复

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

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