PHP 缓存插件之 Zend Opcache ( 取代 APC )
简介:
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 扩展。
- shell > cd /usr/local/src/php-5.6./ext/opcache # 进去 PHP 源码目录下的插件目录
- shell > /usr/local/php/bin/phpize # 生成 configure
- shell > ./configure --with-php-config=/usr/local/php/bin/php-config
- shell > make; make install # 完成安装
- Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-/
3、低版本添加 Zend Opcache 扩展 ( PHP 5.4.36 )
- shell > wget http://pecl.php.net/get/zendopcache-7.0.5.tgz # 官网下载源码包
- shell > tar zxf zendopcache-7.0..tgz
- shell > cd zendopcache-7.0.
- shell > /usr/local/php/bin/phpize
- shell > ./configure --with-php-config=/usr/local/php/bin/php-config
- shell > make; make install
- Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-/
# 之后的操作都一样了
二、配置 Zend Opcache
- shell > vim /usr/local/php/php.ini
- [opcache] # 找到该模块
- zend_extension='/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so' # 指定库文件
- opcache.enable= # 开启 Zend Opcache
- opcache.enable_cli= # 开启在命令行使用 Opcache
- opcache.memory_consumption= # 共享内存大小,单位 MB ,根据实际情况设置
- opcache.interned_strings_buffer=
- opcache.max_accelerated_files= # 最大缓存文件数量,命中率低时,可以提高该限制 ( 并不是整 ,会比这个数多一些 )
- opcache.revalidate_freq= # 查找文件更新间隔
- opcache.save_comments= # 不保存文件、函数的注释,可以提升性能,但是对有些框架会产生问题,建议测试后设置!( 默认为 保存 )
- opcache.fast_shutdown= # 启用内存快速回收
- 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 设置好权限。
- shell > unzip opcache-gui-master.zip
- shell > mkdir /data/www/opcache ; cp opcache-gui-master/index.php /data/www/opcache/
- shell > vim /usr/local/nginx/conf/nginx.conf
- location ~ /opcache/index.php { # 在 server{} 中加入配置,可以使用 .*opcache.* 来代替 /opcache/index.php
- access_log off;
- allow 127.0.0.1;
- allow 36.110.41.194; # 只允许某 IP 访问
- deny all;
- location ~ \.php$ { # 这里也要加入对 PHP 的解析,否则会报 权限拒绝
- root /data/www;
- fastcgi_pass 127.0.0.1:;
- # fastcgi_pass unix:/dev/shm/php-cgi.sock; # 127.0.0.1:
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
- include fastcgi_params;
- }
- }
- shell > kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
# 现在去浏览器访问 http://IP/opcache/index.php 吧!
# 这就是 Zend Opcache ,挺方便、又实用!( 原来的 APC 也蛮好的!)
四、压力测试
- shell > yum -y install siege
- shell > siege -c -t 30s http://127.0.0.1/info.php # 100 个并发,测试 30 秒 ( 示例 )
- Transactions: hits # 总请求数
- Availability: 100.00 % # 成功率
- Elapsed time: 29.56 secs # 总耗时
- Data transferred: 117.17 MB # 数据总传输量
- Response time: 0.01 secs # 响应时间
- Transaction rate: 190.26 trans/sec # 平均每秒完成多少次请求
- Throughput: 3.96 MB/sec # 平均每秒数据传输量
- Concurrency: 2.32 # 实际最高并发连接数
- Successful transactions: # 成功处理次数
- Failed transactions: # 失败处理次数
- Longest transaction: 0.15 # 每次传输最长时间
- Shortest transaction: 0.00 # 每次传输最短时间
PHP 缓存插件之 Zend Opcache ( 取代 APC )的更多相关文章
- PHP 5.5以后加速插件:Zend Opcache
大家知道目前PHP的缓存插件一般有三个: APC. eAccelerator. XCache,但未来它们可能都会消失,因为PHP 5.5已经集成 Zend Opcache,功能和前三者相似但又有少许不 ...
- 编译安装 Zend Opcache 缓存Opcache,加速 PHP
Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP Lice ...
- 新一代 PHP 加速插件 Zend Opcache
参考:http://www.laogui.com/Zend-Opcache 大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP ...
- 新一代 PHP 加速插件 Zend Opcache <转>
注: 由于原链接已不存在, 所以我把图片重新整理了一下, 以便看起来更加直观 笔者注: 1> PHP 性能提升之 PHP NG => php next generation wiki ...
- Zend Optimizer,Zend Guard Loader 和 Zend Opcache 三者之间的区别
PHP的加速插件有三个:Zend Optimizer.Zend Guard Loader 和 Zend Opcache.但其实都是一个,针对不通的php版本.名字叫法不一样而已. Zend Optim ...
- 用Zend OPCache提高PHP的性能
Zend OPCache的前身是Zend Optimizer + (Zend O+),在PHP5.5的发行版本中自带了Zend O+,并重新命名为:Zend OPCache.但是默认是没有启用的,可以 ...
- php Zend Opcache,xcache,eAccelerator缓存优化详解及对比
XCACHE XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接 ...
- PHP使用Zend Opcache之优化加速和缓存清理总结
简介 字节码缓存不是php的新特性,有很多独立性的扩展可以实现缓存,比如PHP Cache(APC),eAccelerator,ionCube和XCache等等.但是到目前为止,这些独立的扩展并没有集 ...
- PHP加速处理插件 Zend Optimizer,Zend Guard Loader 和 Zend Opcache 区别
PHP 5.3.X 以前版本 为 Zend Optimizer PHP 5.3.X 之后 更名为 Zend Guard Loader 可以帮助php执行加密后的php代码 安装实例以Ubu ...
随机推荐
- Codeforces 1027E Inverse Coloring 【DP】
Codeforces 1027E Inverse Coloring 题目链接 #include<bits/stdc++.h> using namespace std; #define N ...
- Hadoop 2.2 & HBase 0.96 Maven 依赖总结
由于Hbase 0.94对Hadoop 2.x的支持不是非常好,故直接添加Hbase 0.94的jar依赖可能会导致问题. 但是直接添加Hbase0.96的依赖,由于官方并没有发布Hbase 0.96 ...
- 《DSP using MATLAB》示例Example 8.25
- Python tarfile模块解压报错 invalid mode ('wb') or filename
问题原因 在使用tarfile模块解压一份Linux服务器上的打包文件时, 出现了错误提示: IOError: [Errno 22] invalid mode ('wb') or filename. ...
- 【jQuery插件分享】Cropper——一个简单方便的图片裁剪插件
原文:https://segmentfault.com/a/1190000012344970 插件介绍 这是一个我在写以前的项目的途中发现的一个国人写的jQuery图像裁剪插件,当时想实现用户资料的头 ...
- Spring核心机制:依赖注入
转载:http://www.cnblogs.com/chenssy/ Java应用(从applets的小范围到全套n层服务端企业应用)是一种典型的依赖型应用,它就是由一些互相适当地协作的对象构成的.因 ...
- Docker生态不会重蹈Hadoop的覆辙
本文原作者是晏东(精灵云Ghostcould创始人),在读到<Docker生态会重蹈Hadoop的覆辙吗?>文章后的个人思考,里面的不少观点也是很不错的. 1.形态上的差异 2013年的时 ...
- bzoj 2406 矩阵——有源汇上下界可行流
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2406 二分答案.把 b 的 n 个行作为一排, m 个列作为一排,每行和每列之间连上下界为 ...
- MySQL出现1030-Got error 28 from storage engine错误
Navicat for MySQL出现1030-Got error 28 from storage engine错误 刚刚还能用这会儿就用不了了,估计是磁盘空间不足引起的! 在根目录/下执行命令:d ...
- Java 设计模式之抽象工厂模式(三)
原文地址:Java 设计模式之抽象工厂模式(三) 博客地址:http://www.extlight.com 一.前言 上篇文章 <Java 设计模式之工厂模式(二)>,介绍了简单工厂模式和 ...