博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 缓存插件之 Zend Opcache ( 取代 APC )
阅读量:6969 次
发布时间:2019-06-27

本文共 3299 字,大约阅读时间需要 10 分钟。

简介:

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.17/ext/opcache # 进去 PHP 源码目录下的插件目录shell > /usr/local/php/bin/phpize # 生成 configureshell > ./configure --with-php-config=/usr/local/php/bin/php-configshell > make; make install # 完成安装Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

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.5.tgzshell > cd zendopcache-7.0.5shell > /usr/local/php/bin/phpizeshell > ./configure --with-php-config=/usr/local/php/bin/php-configshell > make; make installInstalling 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 Opcacheopcache.enable_cli=1 # 开启在命令行使用 Opcacheopcache.memory_consumption=32 # 共享内存大小,单位 MB ,根据实际情况设置opcache.interned_strings_buffer=8opcache.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、

2、

# 可以直观的看到内存使用量、命中率、缓存文件等等信息!

# 第二个项目是单文件部署,很方便。不过要给该 URL 设置好权限。

shell > unzip opcache-gui-master.zipshell > mkdir /data/www/opcache ; cp opcache-gui-master/index.php /data/www/opcache/shell > vim /usr/local/nginx/conf/nginx.conflocation ~ /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 siegeshell > 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             # 每次传输最短时间

 

转载于:https://www.cnblogs.com/wangxiaoqiangs/p/5336562.html

你可能感兴趣的文章
【转】libvirt kvm 虚拟机上网 – Bridge桥接
查看>>
c/c++ helloworld
查看>>
xopy写批处理的忌讳..
查看>>
为程序添加系统上下文菜单
查看>>
css色彩对应值
查看>>
XWiki 4.3 正式版发布
查看>>
java中finally和return的执行顺序
查看>>
.net微信公众号开发——群发消息
查看>>
纪念逝去的岁月——C++实现一个队列(使用类模板)
查看>>
GO语言练习:多返回值函数
查看>>
让x86的android模拟器能模拟arm架构系统
查看>>
初学Struts2-自定义拦截器及其配置
查看>>
关于js中的几个小问题。
查看>>
hdoj-2058-the sum problem
查看>>
MySql基础整理
查看>>
Spring Bean Scope 有状态的Bean 无状态的Bean
查看>>
php 批量修改文件格式或重命名
查看>>
Android数据加密之Aes加密
查看>>
InputStream,String相互转化
查看>>
Atitit.gui api自动化调用技术原理与实践
查看>>