聊聊zend opcache的配置项

opcache.revalidate_freq

这个选项用于设置缓存的过期时间(单位是秒),当这个时间达到后,opcache会检查你的代码是否改变,如果改变了PHP会重新编译它,生成新的opcode,并且更新缓存。

值为“0”表示每次请求都会检查你的PHP代码是否更新(这意味着会增加很多次stat系统调用,译注:stat系统调用是读取文件的状态,这里主要是获取最近修改时间,这个系统调用会发生磁盘I/O,所以必然会消耗一些CPU时间,当然系统调用本身也会消耗一些CPU时间)。可以在开发环境中把它设置为0。

opcache.validate_timestamps

当这个选项被启用(设置为1),PHP会在opcache.revalidate_freq设置的时间到达后检测文件的时间戳(timestamp)。

如果这个选项被禁用(设置为0),opcache.revalidate_freq会被忽略,PHP文件永远不会被检查。这意味着如果你修改了你的代码,然后你把它更新到服务器上,再在浏览器上请求更新的代码对应的功能,你会看不到更新的效果,你必须得重新加载你的PHP(使用kill -SIGUSR2强制重新加载)。

opcache.max_accelerated_files

这个选项用于控制内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和。

你可以运行“find . -type f -print | grep php | wc -l”这个命令来快速计算你的代码库中的PHP文件数。

opcache.memory_consumption

这个选项的默认值为64MB,可以通过调用opcachegetstatus()来获取opcache使用的内存的总量,如果这个值很大,你可以把这个选项设置得更大一些。

opcache.interned_strings_buffer

PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。

这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB,默认是4MB。

opcache.fast_shutdown

它的作用是在单个请求结束时提供一种更快速的机制来调用代码中的析构器,从而加快PHP的响应速度和PHP进程资源的回收速度,这样应用程序可以更快速地响应下一个请求。把它设置为1就可以使用了。

相关推荐:
一些鸡肋般的小容量U盘,用起来嫌容量太少,丢了好像又觉得太可惜。不过现在将它进行一番小改造后,配合我们的电脑,就能得到一台强大的路由器,不仅省了买路由的钱,而且这台路由器在市面上基本买不到! DD-WRT简介 …
Google Project Zero安全团队研究员 Tavis Ormandy 披露了一个微软尚未修复的 Windows 10 0day 漏洞。 Project Zero 的漏洞披露截至时间是 90 天,微软也承诺在 90 天里修复漏洞,但未能兑现,所以在第 91 天 Ormand …
首先解释一下分配单元大小的含义:所谓分配单元大小,即是系统对磁盘以及移动存储设备进行读写的最小单位。 在极限速度以内,分配单元大小设置越大读写速度越快,反之则越慢。但是这里要注意一个问题,单元分配越大 …
硬盘的使用过程经常会遇到许多问题,比如硬盘的损坏等。在一些不当的操作下会影响到硬盘寿命, 造成不必要的资金浪费。我们今天为大家介绍的就是如何有效的延长硬盘寿命。 延长硬盘寿命1、硬盘在工作时不能突然关机 …
webview组件的接口函数searchBoxJavaBridge_存在远程代码执行漏洞,远程攻击者利用此漏洞能实现本地java和js的交互,可以对Android移动终端进行网页挂马从而控制受影响设备。 调用removeJavascriptInterface(“search …
拿起手机扫一扫即可带走我!