资讯专栏INFORMATION COLUMN

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

zollero / 2286人阅读

摘要:配置为时,会根据设定的值检查更新代码设置为时,永不检查。避免上传代码造成系统的不稳定。三推荐配置开发模式下推荐,直接禁用扩展更好多台机器集群模式或者代码更新频繁时推荐,可以兼顾性能,方便代码更新稳定项目推荐,性能最好参考

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
参考

https://segmentfault.com/a/11...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30585.html

相关文章

  • 【modernPHP专题(13)】ZendOpcache字节码缓存

    摘要:概述字节码缓存不是的新特性,有很多独立的扩展可以实现,比如和等,但是截至目前这些扩展都没有集成到内核,从开始,内置了字节码缓存功能,名为。开始之前,我们先来看看什么是字节码缓存,以及字节码缓存的作用是什么。该函数将重置整个字节码缓存。 概述 字节码缓存不是PHP的新特性,有很多独立的扩展可以实现,比如APC、eAccelerator和Xache等,但是截至目前这些扩展都没有集成到PHP...

    KevinYan 评论0 收藏0
  • Zend Opcache 的最佳设置

    摘要:当这个选项被启用设置为,会在设置的时间到达后检测文件的时间戳。设置值取值范围最小值是,最大值在之前是,及之后是。这个选项的值是以兆字节作为单位,如果把它设置为,则表示,默认是,这是一个比较低的值。 在网上无意中看到的一篇文章,这哥们非常简洁地谈论了zend opcache的最佳设置,他说他为此花了大量的时间探索zend opcache的每个设置选项的细节,甚至是阅读它的源代码,并且在自...

    xiaokai 评论0 收藏0
  • PHP应用性能优化指南

    摘要:怎样才算是高性能的应用性能和速度不是一对同义词。红线表示针对速度进行了优化的脚本,蓝线是可扩展性优先的脚本。将任何这些功能置于循环中可能会导致性能问题。完整的代码检测评估虽然可能很耗时,但它可以为你提供有关应用程序性能的深入信息。 showImg(https://segmentfault.com/img/bVNxDn?w=900&h=500);程序员都喜欢最新的PHP 7,因为它使PH...

    EddieChan 评论0 收藏0
  • Laravel 5 程序优化技巧

    摘要:使用即时编译器和都能轻轻松松的让你的应用程序在不用做任何修改的情况下,直接提高或者更高的性能,之前做个一个实验,具体请见使用提升程序性能。 本文经授权转自 PHPHub 社区 说明 性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能。 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论。 这里是简单的列表: 配置信...

    habren 评论0 收藏0
  • 记一次 Laravel 应用性能调优经历

    摘要:为了一探究竟,于是开启了这次应用性能调优之旅。使用即时编译器和都能轻轻松松的让你的应用程序在不用做任何修改的情况下,直接提高或者更高的性能。 这是一份事后的总结。在经历了调优过程踩的很多坑之后,我们最终完善并实施了初步的性能测试方案,通过真实的测试数据归纳出了 Laravel 开发过程中的一些实践技巧。 0x00 源起 最近有同事反馈 Laravel 写的应用程序响应有点慢、20几个并...

    warkiz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<