简介:

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 )的更多相关文章

  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. bzoj 2850 巧克力王国

    bzoj 2850 巧克力王国 钱限题.题面可以看这里. 显然 \(x\) \(y\) 可以看成坐标平面上的两维,蛋糕可以在坐标平面上表示为 \((x,y)\) ,权值为 \(h\) .用 \(kd- ...

  2. 51nod 1600 Simple KMP【后缀自动机+LCT】【思维好题】*

    Description 对于一个字符串|S|,我们定义fail[i],表示最大的x使得S[1..x]=S[i-x+1..i],满足(x<i) 显然对于一个字符串,如果我们将每个0<=i&l ...

  3. BZOJ1227 SDOI2009 虔诚的墓主人【树状数组+组合数】【好题】*

    BZOJ1227 SDOI2009 虔诚的墓主人 Description 小W 是一片新造公墓的管理人.公墓可以看成一块N×M 的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块还没有归属的墓地. ...

  4. 完美解决github访问速度慢[转]

    1. 修改本地hosts文件 windows系统的hosts文件的位置如下:C:\Windows\System32\drivers\etc\hosts mac/linux系统的hosts文件的位置如下 ...

  5. SEO方案

    前端需要注意哪些SEO 合理的title.description.keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有 ...

  6. gradle 项目构建以及发布maven 私服&& docker 私服构建发布

    1. 项目结构   2. 代码说明 a. Dockerfile docker 构建的 FROM openjdk:8-jre-alpine WORKDIR /appdemo/ COPY build/di ...

  7. [LeetCode系列]最大容器问题

    给定n个数: a1, a2, ... , an. 代表着(i, ai)个点, 连接这些点与对应的(i, 0), 我们可以得到n条线. 请在这n条线中找出2条, 使得这两条线和x轴构成的容器能够容纳最多 ...

  8. vuejs2.0的生命周期解读

    每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM .下图展示的就是一个v ...

  9. bean作用域

    https://blog.csdn.net/u011468990/article/details/49995865 其中比较常用的是singleton和prototype两种作用域.对于singlet ...

  10. 6.Python使用Pandas小案例

    1.使用以下命令引入Pandas和xlrd,引入成功后在pycharm的setting导入即可使用(pip3是由于个人python版本为3.6)==在dos命令行输入以下信息 pip3 install ...