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 即可开启该扩展,之后稍做配置即可

2、手动添加 Zend Opcache 扩展。

shell > cd /usr/local/src/php-5.6.17/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-20131226/

二、配置 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=1 # 开启 Zend Opcache

opcache.enable_cli=1 # 开启在命令行使用 Opcache

opcache.memory_consumption=32 # 共享内存大小,单位 MB ,根据实际情况设置

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000 # 最大缓存文件数量,命中率低时,可以提高该限制 ( 4000 并不是整 4000 ,会比这个数多一些 )

opcache.revalidate_freq=60 # 查找文件更新间隔

opcache.save_comments=0 # 不保存文件、函数的注释,可以提升性能,但是对有些框架会产生问题,建议测试后设置!( 默认为 1 保存 )

opcache.fast_shutdown=1 # 启用内存快速回收

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 的解析,否则会报 404 权限拒绝
    root /data/www;
    fastcgi_pass 127.0.0.1:9000;
    # fastcgi_pass unix:/dev/shm/php-cgi.sock; # 127.0.0.1:9000
    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 100 -t 30s http://127.0.0.1/info.php # 100 个并发,测试 30 秒 ( 示例 )

Transactions:            5624 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: 5624             # 成功处理次数
Failed transactions:     0                # 失败处理次数
Longest transaction:     0.15             # 每次传输最长时间
Shortest transaction:    0.00             # 每次传输最短时间
时间: 2024-11-10 16:54:20

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

PHP 5.5以后加速插件:Zend Opcache

大家知道目前PHP的缓存插件一般有三个: APC. eAccelerator. XCache,但未来它们可能都会消失,因为PHP 5.5已经集成 Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过). php5.5以后版本编译eAccelerator报错如下: eaccelerator.c:66:23: error: php_logos.h: No such file or directory 究其原因是PHP5.5以下版本有php_lo

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

Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache. GitHub地址:https://github.com/zendtech/ZendOptimizerPlus Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程.它将预编译的脚本文件存储在共享内存中供以后使用,从而避免

新一代 PHP 加速插件 Zend Opcache

参考:http://www.laogui.com/Zend-Opcache 大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过). 这几个PHP加速插件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降 低服务器负载,它们的效率是

使用 Zend Opcache 加速 PHP (2)

Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache. Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程.它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗.同时,它还应用了一些代码优化模式,使得代码执行更快. 1. 什么是 op

使用 Zend Opcache 加速 PHP

Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache. Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程.它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗.同时,它还应用了一些代码优化模式,使得代码执行更快. 1. 什么是 op

用Zend OPCache提高PHP的性能

Zend OPCache的前身是Zend Optimizer + (Zend O+),在PHP5.5的发行版本中自带了Zend O+,并重新命名为:Zend OPCache.但是默认是没有启用的,可以在ini文件中enable一下. 据统计,zend opcache比apc性能要好,可以提升提升 5%-9%. 值得关注的是Zend OPCache支持PHP5.2.0+的版本,也就是说只要是5.2以上的PHP,都可以是用Zend OPCache,而不需一定要升级到PHP5.5,所以在我们目前的生产

为PHP环境增加缓存加速插件-Zend Opcache

为PHP环境增加缓存加速插件-Zend Opcache目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP 5.5已经集成ZendOpcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过). 这几个PHP加速插件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的,像drupal这种庞大

PHP加速插件 Zend Opcache

大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过). 这几个PHP加速插 件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们 的效率是显而易见的,像drupal这种庞大的CMS,每次打开一个页面要调用数十个P

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

PHP 5.3.X   以前版本 为  Zend Optimizer PHP 5.3.X   之后 更名为  Zend Guard Loader 可以帮助php执行加密后的php代码 安装实例以Ubuntu Server 12.04 LTS 64位版本 mkdir /usr/zend    (把压缩包下载到此目录,因为压缩包名字太长,不好配置) wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-gli