[笔记] 使用 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最新最全的微信小程序入门学习教程,微信小程序零基础入门到精通

    最新最全的微信小程序入门学习教程,微信小程序零基础入门到精通从今天开始就来带领大家学习微信小程序了,只要你跟着我一步步来,相信你也可以上线一款属于自己的微信小程序一,认识小程序微信⼩程序,简称⼩程序,英⽂名MiniProgramMiniProgram,是⼀种不需要下载安装即可使⽤的应⽤,它实现了应⽤“触⼿可及”的梦想,⽤⼾扫⼀扫或搜⼀下即可打开应⽤1-1,微信小程序的优势1.微信有海量⽤⼾,⽽且粘性很⾼,在微信⾥开发产品更容易触达⽤⼾;2.推⼴app或公众号的成本太⾼。3.开发适配成本低。4.容易⼩规模试错,然后快速迭代。5.跨平台。

    2022年6月25日
    48
  • LuaJIT_lunatie deuil

    LuaJIT_lunatie deuil1.FFI教程原文:FFITutorial相关链接:OpenResty最佳实践之FFI加载FFI库FFI库时默认编译进LuaJIT中的,但是不会默认加载或初始化。因此,当需要使用FFI库时,需要在Lua文件的开头添加如下语句:localffi=require(“ffi”)访问标准系统函数如下示例显示了如何访问标准系统函数。localffi=…

    2022年9月27日
    0
  • 排序二叉树及其遍历「建议收藏」

    排序二叉树及其遍历「建议收藏」  所谓建立排序二叉树就是,就是将各结点数据元素顺序插到一棵二叉树中,在插入的过程中,始终保持二叉树中每个结点的值都大于其左子树上每个结点的值,而小于或等于其右子树上每个结点的值,每个结点信息包括结点数据(结点值)、左子树指针、右子树指针。程序执行的过程中,bt指针始终指向根结点,p指针指向当前已找到的结点,q指针不断向下寻找新的结点。  为实现二叉树的非递归算法,需要设置一个栈来保存指向结点

    2022年7月25日
    4
  • logstash修改字段内容_logstash原理

    logstash修改字段内容_logstash原理logstash数据类型的修改logstash中可以设置字段的类型为integer,float,stringfilter{mutate{convert=>[“request_time”,”float”]#设置request_time的类型为float类型}}注意:mutate除了转化字符值,还支持对数组类型的字段进行转换,即将[“1″,”2”]转换

    2022年9月5日
    3
  • JS判断值是否是数字

    JS判断值是否是数字随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。from:https://www.cnblogs.com/maxm/p/6743989.html1.使用isNaN()函数isNaN()的缺点就在于null、空格以及空串会被按照0来处理NaN:No…

    2022年6月16日
    19
  • 信息系统项目管理师高级论文_信息系统项目管理师历年论文题目

    信息系统项目管理师高级论文_信息系统项目管理师历年论文题目本系列文章将会对信息系统项目管理师考试中出现的十大管理论文进行分析,并给出参考范文,帮助考生备考复习。更多复习内容请在微信搜索小程序“信息系统项目管理师高频考点”。2021上半年论文真题范围管理论文试题一论信息系统项目的范围管理项目范围管理必须清晰地定义项目范围,其主要工作是要确定哪些工作是项目应该做的,哪些不应该包括在项目中。请以“论信息系统项目的范围管理”为题进行论述∶1.概要叙述你参与管理过的一个信息系统项目(项目的背景、项目规模、发起单位、目的、项目内容、组织结构

    2022年9月14日
    0

发表回复

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

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