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 ...
随机推荐
- 每天一个linux命令:【转载】mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- Codeforces 815C. Karen and Supermarket【树形DP】
LINK 思路 首先发现依赖关系是一个树形的结构 然后因为直接算花多少钱来统计贡献不是很好 因为数组开不下 那就可以算一个子树里面选多少个的最小代价就可以了 注意统计贡献的时候用优惠券的答案只能在1号 ...
- 服务器上通过FTP共享文件夹
近日,公司某服务器共同操作的人员增多,而我只需访问及替换某些文件,故想到共享文件夹. 在IIS中建立ftp站点,添加虚拟目录(可多个,对应不同文件夹),设置允许访问的用户(添加用户,见在IIS上搭建F ...
- css设置图片水平及垂直居中
.box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:cen ...
- vs中无法找到头文件
在VS项目上右键属性 C/C++->常规->附加包含目录中把此路径添加上,路径与路径之间用 ; 隔开
- CentOS 中安装NFS
NFS(network file system)网络文件系统,类似Windows中的文件夹共享,如下有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, ...
- PHP面向对象(OOP)----访问限制符
访问控制修饰符指public.protected.private三个关键词来修饰类的成员属性和成员方法,可以有不同的权限 public:[共有的]类里面调用和类外面调用都是可以的 protected: ...
- [LeetCode系列]子集枚举问题[有重复元素]
给定一组数(未排序, 可能有重复元素), 求出所有可能的组合. 算法和无重复元素的相似. 唯一需要注意的是, 如果当前的数字和之前的相同, 算法就只会在结尾数字是此数字的组合后加上此数字. 比如现在是 ...
- 军哥 LNMP 常见问题
安装memcached出错: Install memcached...Notice: memcached-1.4.25.tar.gz not found!!!download now...--2016 ...
- fileupload页面跳转找不到原页面的解决方法
做了个上传图片的功能,之前做的全都对,完全可以实现,但是后来再弄的时候,只要FileUpload控件里面有字(选择了图片),再按button.它尽然不执行button1_click事件,直接页面跳转, ...