简介:

Zend Opcache 、APC 这都是 PHP 代码加速器,将 PHP 源代码的编译结果缓存起来,再次调用时对比时间标记,如果没有改变则使用缓存数据,免去再次解析代码的开销。

APC 止步于 PHP 5.4 ,Zend Opcache 从 PHP 5.5 开始集成,取代 APC 。

一、安装 Zend Opcache

1、源码编译 PHP 时,加入 --enable-opcache 即可开启该扩展,之后稍做配置即可 ( PHP 5.6.17 )

2、手动添加 Zend Opcache 扩展。

  1. shell > cd /usr/local/src/php-5.6./ext/opcache # 进去 PHP 源码目录下的插件目录
  2. shell > /usr/local/php/bin/phpize # 生成 configure
  3. shell > ./configure --with-php-config=/usr/local/php/bin/php-config
  4. shell > make; make install # 完成安装
  5. Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-/

3、低版本添加 Zend Opcache 扩展 ( PHP 5.4.36 )

  1. shell > wget http://pecl.php.net/get/zendopcache-7.0.5.tgz # 官网下载源码包
  2. shell > tar zxf zendopcache-7.0..tgz
  3. shell > cd zendopcache-7.0.
  4. shell > /usr/local/php/bin/phpize
  5. shell > ./configure --with-php-config=/usr/local/php/bin/php-config
  6. shell > make; make install
  7. Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-/

# 之后的操作都一样了

二、配置 Zend Opcache

  1. shell > vim /usr/local/php/php.ini
  2.  
  3. [opcache] # 找到该模块
  4.  
  5. zend_extension='/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so' # 指定库文件
  6.  
  7. opcache.enable= # 开启 Zend Opcache
  8.  
  9. opcache.enable_cli= # 开启在命令行使用 Opcache
  10.  
  11. opcache.memory_consumption= # 共享内存大小,单位 MB ,根据实际情况设置
  12.  
  13. opcache.interned_strings_buffer=
  14.  
  15. opcache.max_accelerated_files= # 最大缓存文件数量,命中率低时,可以提高该限制 ( 并不是整 ,会比这个数多一些 )
  16.  
  17. opcache.revalidate_freq= # 查找文件更新间隔
  18.  
  19. opcache.save_comments= # 不保存文件、函数的注释,可以提升性能,但是对有些框架会产生问题,建议测试后设置!( 默认为 保存 )
  20.  
  21. opcache.fast_shutdown= # 启用内存快速回收
  22.  
  23. shell > service php-fpm restart # 现在 phpinfo 界面就可以看到成功加载了 Zend Opcache ,或 php -m | grep -i opcache

三、监控、管理 Zend Opcache

两个开源项目 ( 第二个貌似好搞一点 ) :

1、https://github.com/PeeHaa/OpCacheGUI
2、https://github.com/amnuts/opcache-gui

# 可以直观的看到内存使用量、命中率、缓存文件等等信息!
# 第二个项目是单文件部署,很方便。不过要给该 URL 设置好权限。

  1. shell > unzip opcache-gui-master.zip
  2. shell > mkdir /data/www/opcache ; cp opcache-gui-master/index.php /data/www/opcache/
  3.  
  4. shell > vim /usr/local/nginx/conf/nginx.conf
  5.  
  6. location ~ /opcache/index.php { # 在 server{} 中加入配置,可以使用 .*opcache.* 来代替 /opcache/index.php
  7.  
  8. access_log off;
  9.  
  10. allow 127.0.0.1;
  11. allow 36.110.41.194; # 只允许某 IP 访问
  12. deny all;
  13.  
  14. location ~ \.php$ { # 这里也要加入对 PHP 的解析,否则会报 权限拒绝
  15. root /data/www;
  16. fastcgi_pass 127.0.0.1:;
  17. # fastcgi_pass unix:/dev/shm/php-cgi.sock; # 127.0.0.1:
  18. fastcgi_index index.php;
  19. fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
  20. include fastcgi_params;
  21. }
  22. }
  23.  
  24. shell > kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

# 现在去浏览器访问 http://IP/opcache/index.php 吧!
# 这就是 Zend Opcache ,挺方便、又实用!( 原来的 APC 也蛮好的!)

四、压力测试

  1. shell > yum -y install siege
  2.  
  3. shell > siege -c -t 30s http://127.0.0.1/info.php # 100 个并发,测试 30 秒 ( 示例 )
  4.  
  5. Transactions: hits # 总请求数
  6. Availability: 100.00 % # 成功率
  7. Elapsed time: 29.56 secs # 总耗时
  8. Data transferred: 117.17 MB # 数据总传输量
  9. Response time: 0.01 secs # 响应时间
  10. Transaction rate: 190.26 trans/sec # 平均每秒完成多少次请求
  11. Throughput: 3.96 MB/sec # 平均每秒数据传输量
  12. Concurrency: 2.32 # 实际最高并发连接数
  13. Successful transactions: # 成功处理次数
  14. Failed transactions: # 失败处理次数
  15. Longest transaction: 0.15 # 每次传输最长时间
  16. Shortest transaction: 0.00 # 每次传输最短时间

PHP 缓存插件之 Zend Opcache ( 取代 APC )的更多相关文章

  1. PHP 5.5以后加速插件:Zend Opcache

    大家知道目前PHP的缓存插件一般有三个: APC. eAccelerator. XCache,但未来它们可能都会消失,因为PHP 5.5已经集成 Zend Opcache,功能和前三者相似但又有少许不 ...

  2. 编译安装 Zend Opcache 缓存Opcache,加速 PHP

    Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP Lice ...

  3. 新一代 PHP 加速插件 Zend Opcache

    参考:http://www.laogui.com/Zend-Opcache 大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP ...

  4. 新一代 PHP 加速插件 Zend Opcache <转>

    注: 由于原链接已不存在, 所以我把图片重新整理了一下, 以便看起来更加直观 笔者注: 1>  PHP 性能提升之 PHP NG  =>  php next generation wiki ...

  5. Zend Optimizer,Zend Guard Loader 和 Zend Opcache 三者之间的区别

    PHP的加速插件有三个:Zend Optimizer.Zend Guard Loader 和 Zend Opcache.但其实都是一个,针对不通的php版本.名字叫法不一样而已. Zend Optim ...

  6. 用Zend OPCache提高PHP的性能

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

  7. php Zend Opcache,xcache,eAccelerator缓存优化详解及对比

    XCACHE XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接 ...

  8. PHP使用Zend Opcache之优化加速和缓存清理总结

    简介 字节码缓存不是php的新特性,有很多独立性的扩展可以实现缓存,比如PHP Cache(APC),eAccelerator,ionCube和XCache等等.但是到目前为止,这些独立的扩展并没有集 ...

  9. PHP加速处理插件 Zend Optimizer,Zend Guard Loader 和 Zend Opcache 区别

    PHP 5.3.X   以前版本 为  Zend Optimizer PHP 5.3.X   之后 更名为  Zend Guard Loader 可以帮助php执行加密后的php代码 安装实例以Ubu ...

随机推荐

  1. Codeforces 1027E Inverse Coloring 【DP】

    Codeforces 1027E Inverse Coloring 题目链接 #include<bits/stdc++.h> using namespace std; #define N ...

  2. Hadoop 2.2 & HBase 0.96 Maven 依赖总结

    由于Hbase 0.94对Hadoop 2.x的支持不是非常好,故直接添加Hbase 0.94的jar依赖可能会导致问题. 但是直接添加Hbase0.96的依赖,由于官方并没有发布Hbase 0.96 ...

  3. 《DSP using MATLAB》示例Example 8.25

  4. Python tarfile模块解压报错 invalid mode ('wb') or filename

    问题原因 在使用tarfile模块解压一份Linux服务器上的打包文件时, 出现了错误提示: IOError: [Errno 22] invalid mode ('wb') or filename. ...

  5. 【jQuery插件分享】Cropper——一个简单方便的图片裁剪插件

    原文:https://segmentfault.com/a/1190000012344970 插件介绍 这是一个我在写以前的项目的途中发现的一个国人写的jQuery图像裁剪插件,当时想实现用户资料的头 ...

  6. Spring核心机制:依赖注入

    转载:http://www.cnblogs.com/chenssy/ Java应用(从applets的小范围到全套n层服务端企业应用)是一种典型的依赖型应用,它就是由一些互相适当地协作的对象构成的.因 ...

  7. Docker生态不会重蹈Hadoop的覆辙

    本文原作者是晏东(精灵云Ghostcould创始人),在读到<Docker生态会重蹈Hadoop的覆辙吗?>文章后的个人思考,里面的不少观点也是很不错的. 1.形态上的差异 2013年的时 ...

  8. bzoj 2406 矩阵——有源汇上下界可行流

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2406 二分答案.把 b 的 n 个行作为一排, m 个列作为一排,每行和每列之间连上下界为 ...

  9. MySQL出现1030-Got error 28 from storage engine错误

    Navicat for MySQL出现1030-Got error 28 from storage engine错误  刚刚还能用这会儿就用不了了,估计是磁盘空间不足引起的! 在根目录/下执行命令:d ...

  10. Java 设计模式之抽象工厂模式(三)

    原文地址:Java 设计模式之抽象工厂模式(三) 博客地址:http://www.extlight.com 一.前言 上篇文章 <Java 设计模式之工厂模式(二)>,介绍了简单工厂模式和 ...