引言:
我是来练习表达能力的,有看不懂的可以留言
前段时间我们老大高兴的告诉我们几个,接口的响应时间减少了很多,说是开启了opache,看了下日志,的确提升了挺多,但是他在纠结怎么配置,于是就诞生了这个问题:”到底opcache什么是最佳配置呢?“,查阅了百度,全是讲解参数的,感觉没什么用,已经写了几十字废话了,不BB了,直接贴配置吧(开发环境不要开启opcache)
opcache.enable=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
参数解释:
opcache.validate_timestamps = 0 设为0,表示需要手动更新opcache,设为1,则根据参数opcache.revalidate_freq的设置去自动更新
opcache.revalidate_freq = 0 opcache自动检测文件是否更新的周期,单位秒。如果是0,则每次请求时opcache都要进行检测。当validate_timestamps为0时,指令无效。
opcache.max_accelerated_files=7963 最大缓存文件数目,根据项目配置
opcache.memory_consumption=192 为opcache分配多少共享内存,单位M,根据项目配置
opcache.interned_strings_buffer=16 用来存储临时字符串的内存大小,以兆字节为单位
opcache.fast_shutdown = 1 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
看完上面的配置大多数人都会产生一个问题,我代码更新了,我怎么手动更新opcache, 又到我BB的时间了,下面讲解一些方法:
笨方法:重启php-fpm
框架:
laravel框架本身是带有指令的:可以执行:php artisan opcache:clear
其余方法:
opcache_reset和opcache_invalidate函数可以清理,可以写接口或者脚本调用,接口别公开