用Zend OPCache提高PHP的性能

Posted 云旗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Zend OPCache提高PHP的性能相关的知识,希望对你有一定的参考价值。

Zend OPCache的前身是Zend Optimizer + (Zend O+),在php5.5的发行版本中自带了Zend O+,并重新命名为:Zend OPCache。但是默认是没有启用的,可以在ini文件中enable一下。

据统计,zend opcache比apc性能要好,可以提升提升 5%-9%。

技术分享

值得关注的是Zend OPCache支持PHP5.2.0+的版本,也就是说只要是5.2以上的PHP,都可以是用Zend OPCache,而不需一定要升级到PHP5.5,所以在我们目前的生产站点可以尝试使用Zend OPCache,如基于Drupal6、Drupal7的PHP5.2,PHP5.3等版本。

Drupal大学上也有关于这个问题的讨论,链接一下:Zend OPCache和APC能共用吗?


安装Zend OPCache,推荐使用自带源或者PECL包的安装方式。

yum install php-pecl-zendopcache.x86_64 -y

启用Zend OPCache, 编辑 /etc/php.d/opcache.ini 文件

zend_extension=/usr/lib64/php/modules/opcache.so
 
; Determines if Zend OPCache is enabled
opcache.enable=1

重启web服务器即可,查看info,即可看到Zend OPCache项或者使用 php -i|grep opcache。

相关问题,
1. Zend OPCache是做opcache的缓存,那么APC是还需要?个人认为,这个就不需要了,因为功能重复,虽然两个同时安装没有什么bug,但是还是不推荐使用。
ServerFault上面的也有关于apc和Zend OPCache公用的讨论,推荐不要一起用。
http://serverfault.com/questions/610524/can-zend-opcode-cache-and-apc-cache-run-together-on-same-server

2. 禁用apc相关的处理方案。
如果不使用apc,apc_store等相关apc的函数需要禁用。如果系统里面有很多相关的apc函数,可以使用apcu模块,此模块只有apc的user cache功能。
还有apc的上传进度相关功能需要代替,可以使用PHP自带的session,session.upload-progress.enabled
http://php.net/manual/en/session.configuration.php#ini.session.upload-progress.enabled

3. save_comments选项

opcache.save_comments=1

如果禁用此选项,那么PHP中所有的comment会被禁用,性能会提升,但是有些框架可能会受影响,比如Wordpress,Drupal8、PHPUnit等,建议不要禁用。
 

4. Zend OPCache的管理工具
两个比较好用的OPCache管理工具,笔者测试了第一个,不过貌似第二个更强大一些,呱呱^_^:
https://github.com/amnuts/opcache-gui
https://github.com/PeeHaa/OpCacheGUI

技术分享


 


本文有效链接: http://www.drupal001.com/2014/09/zend-opcache-php/ 

以上是关于用Zend OPCache提高PHP的性能的主要内容,如果未能解决你的问题,请参考以下文章

PHP5.6+7代码性能加速-开启Zend OPcache-优化CPU

[PHP] - 性能加速 - 开启opcache

性能加速 - 开启opcache

php在5.5.0默认提供了Zend OPcache

PHP5.5+启用OPCache

为 php 5.6 激活 WinCache 和 OpCache 以提高性能?