zoukankan      html  css  js  c++  java
  • 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.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/

    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.tgz
    shell > cd zendopcache-7.0.5
    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-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             # 每次传输最短时间
  • 相关阅读:
    sublime text 4 vim 插件配置
    ssh-keygen 的使用
    distribution transaction solution
    bilibili 大数据 视频下载 you-get
    Deepin 20.2.1 安装 MS SQL 2019 容器版本
    【转】使用Linux下Docker部署MSSQL并加载主机目录下的数据库
    【转】You Can Now Use OneDrive in Linux Natively Thanks to Insync
    dotnet 诊断工具安装命令
    Linux 使用 xrandr 设置屏幕分辨率
    【转】CentOS 7.9 2009 ISO 官方原版镜像下载
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/5336562.html
Copyright © 2011-2022 走看看