使用 OpCache 提升 PHP 5.5+ 程序性能

说明

PHP 5.5 以后内建了OpCache,OpCache的加速原理是把编译后的bytecode存储在内存里面, 避免重复编译 PHP 所造成的资源浪费.

引用

  • How To Enable PHP 5.5 Opcache on Ubuntu 14.04
  • Enable PHP 5.5 Opcache on Ubuntu 14.04 with Nginx and PHP-FPM
  • How to use PHP OPCache?

工作

如何启用

虽然内建了, 但是默认没有启用, 下面是开启的布置, 以这套环境为例子:

PHP 5.5 Ubuntu 14.04 Nginx PHP-FPM

修改 PHP.ini 文件

sudo vim /etc/php5/fpm/PHP.ini

在文件最后面加入:

; 开关打开 opcache.enable=1  ; 可用内存, 酌情而定, 单位 megabytes opcache.memory_consumption=256  ; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值 opcache.max_accelerated_files=5000  ; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒 opcache.revalidate_freq=240 

重启服务器

sudo service PHP5-fpm restart sudo service nginx restart

APC VS OpCache

APC 是将要被遗弃的项目, PHP 5.5 都不支持, 而在 PHP 5.5 和 5.6 版本, OpCache 是默认内建的, 并且支持 5.2 到 5.4 的安装.

如何查看效果

  • 拥有漂亮的图形化界面的项目 :HTTPs://github.com/PeeHaa/OpCacheGUI
  • 单文件, 方便部署的项目:HTTPs://github.com/rlerdorf/opcache-status

效果图 :sparkles:

下图是 PHPHub 开启了 OpCache 后的效果 (New Relic监控后台截屏 ) :

开启后的 PHP 平均响应时间不到 60ms, 之前是 120 ~ 130ms

大家有没有觉得访问的时候快了一点点呢. :smile:




转载请注明:http://www.guyukameng.com/jspt/jspt/15.html