我的博客之前安装了Zend Opcache,有博友询问过Zend Opcache与XCache在php.ini中应该谁在前面,担心两者之间是否有效率或者共存上的问题。所以简单说了下XCache Zend Guard Loader Zend OPcache在php.ini中的顺序,不过实质上这只是说明了共存。
当同时配置Zend Opcache与XCache之后存在的问题:
- XCache会非常有效,但是Zend Opcache的Cache hits非常少,命中率而且非常低,基本上Zend Opcache就无效了。
- 会出现HTTPD耗尽内存,而使得HTTPD“琐事”现象,网站无法访问,但是用free命令查看内存并没有用完(实在不清楚什么原因)。
之后去掉XCache,只留Zend Opcache,测试发现cache hits正常了,并且命中率很高。查看情况,可以用phpinfo()查看,也可以使用Opcache Control Panel查看缓存、命中率等情况。
这里需说明下,这并不是XCache效率不高,只是不适合两者同时使用。需要注意到是:XCache自 3.0 版本开始不再支持使用 zend_extension 加载 xcache。