zoukankan      html  css  js  c++  java
  • PHP缓存加速器

    前提:
    解决部分加速软件的Perl编译问题适用于LAMP和LNMP

    1)配置环境变量LC_ALL
      echo 'export LC_ALL=C'>> /etc/profie#">>"表示文件追加内容
      tail -l /etc/profile
      source /etc/profie
      echo $LC_ALL

    2)安装Perl相关依赖
      yum -y perl-CPAN或yum -y install perl-devel
      #若不安装在安装ImageMagick时可能报错

    一、安装加速器扩展
    1.eAccelerator缓存加速模块
      cd /home/hty/tools
      wget http://soft.vpser.net/web/eaccelerator/eaccelerator-eaccelerator-42067ac.tar.gz
      tar xf eaccelerator-eaccelerator-42067ac.tar.gz
      cd eaccelerator-eaccelerator-42067ac
      /application/php/bin/phpize
      ./configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config
      make
      make install
      ls /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
      cd ..
      出现了如下信息:
      [root@instance-yf0xzby9 eaccelerator-eaccelerator-42067ac]# ls /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
      eaccelerator.so
    2.Xache缓存加速模块
      cd /home/hty/tools
      wget https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
      tar xf xcache-3.2.0.tar.bz2
      cd xcache-3.2.0
      /application/php/bin/phpize
      ./configure --enable-xcache --with-php-config=/application/php/bin/php-config
      make
      make install
      ls -l /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
      cd ..
    3.官方加速插件ZendOpcache
      cd /home/hty/tools
      wget https://pecl.php.net/get/zendopcache-7.0.5.tgz
      tar xf zendopcache-7.0.5.tgz
      cd zendopcache-7.0.5
      /application/php/bin/phpize
      ./configure --enable-opcache --with-php-config=/application/php/bin/php-config
      make
      make install
      ls -l /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
      cd ..
    二、数据库缓存及其他PHP扩展插件
      1.Memcached缓存软件
        优点:开源、支持高性能、高并发、分布式的内存缓存
        RDBNS缺点:数据量大,访问集中时,出现负担加重、数据库响应慢、网站打开延迟等问题
        目的:提高网站并发能力和可扩展性
        功能:一般用来保存网站中经常被读取的对象或数据
        cd /home/hty/tools
        wget -q https://pecl.php.net/get/memcached-2.2.7.tgz
        tar zxf memcached-2.2.7.tgz
        cd memcached-2.2.7
        /application/php/bin/phpize
        ./configure --enable-memcache --with-php-config=/application/php/bin/php-config
        make
        make install
        ls -l /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
        cd ..
      2.安装PDO_MYSQL扩展模块
          cd /home/hty/tools
          wget -q https://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
          tar zxf PDO_MYSQL-1.0.2.tgz
          cd PDO_MYSQL-1.0.2
          /application/php/bin/phpize
          ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql
          make
          make install
          ls -l /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
          cd ../
          **此步不是安装PHP扩展,因此不会生成.so文件
      3.安装图像处理程序及imagick扩展模块
        事先在http://www.imagemagick.org/download/  下载好对应的软件
        ls -l ImageMagick-6.5.1-2.tar.gz
        tar xf ImageMagick-6.5.1-2.tar.gz
        cd ImageMagick-6.5.1-2
        ./configure
        make && make install
        cd ..
        ###echo $?
        返回0表示 安装成功,1表示失败
      4.安装imagick PHP扩展插件
        iamgick插件可以提供PHP调用ImageMagick功能的扩展模块,使ImagicMagick提供的api进行
        图片的创建与修改、压缩等操作可以进行
        下载地址:http://pecl.php.net/package/imagick
        版本号:
          imagick:2.3.0.tgz
          php:5.3.27
        tar zxf imagick-2.3.0.tgz
        cd imagick-2.3.0
        /application/php/bin/phpize
        ./configure --with-php-config=/application/php/bin/php-config
        make
        make install
        ls -l /application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/
        cd ../
    三、配置PHP加速与缓存相关的扩展插件模块
      1.配置Memcache/PDO_MYSQL/imagick模块生效
        1)修改PHP的配置文件php.ini
          cd /application/php/lib
          cp php.ini php.ini.hty.20180929 #备份文件
          sed -i 's#; extension_dir = "./"#extension_dir = "/application/php.3.27/lib/php/extensions/no-debug-non-zts-20090626/"#g' php.ini
          grep "extension_dir =" php.ini
          cat >> /application/php/lib/php.ini<<EOF
          ;--cache ext start by hty 2018-09-29--
          extension = memcache.so
          extension = pdo_mysql.so
          extension = imagick.so
          ;--cache ext end by hty 2018-09-29--    #注释为“;”,不是“#”
          tail -5 /application/php/lib/php.ini
      2.检查配置生效情况
        1)重启PHP服务,编写测试程序phpinfo
          pkill php-fpm
          ps -ef|grep php-fpm|grep -v prep
          /application/php/sbin/php-fpm
          ps -ef|grep php-fpm|grep -v grep|wc -l
          然后在前文blog站点目录下增加phpinfo.php代码文件
            cd /application/nginx/conf/extra
            cat blog.conf
            cat >>/application/nginx/html/blog/view_info.php<<EOF
            <?php phpinfo();?>
            EOF
            cat /application/nginx/html/blog/view_info.php
          2)检查Memcached扩展插件
            通过快捷键Ctrl+F,在界面搜索相应的插件
            配置好客户端的解析,在浏览器中输入http://blog.etiantian.org/view_info.php
            则可以看到PHP的界面
          3)检查PDO_MYSQL扩展插件
            同理搜索PDO_MYSQL
      3.配置eAccelerator插件生效并优化参数
        1)配置eAccelerator缓存目录
          mkdir -p /tmp/eaccelerator
          chown -R nginx.nginx /tmp/eaccelerator
          ls -ld /tmp/eaccelerator
        2)配置eAccelerator参数
            cat >> /application/php/lib/php.ini<<EOF
            [eaccelerator]
            extension=eaccelerator.so
            eaccelerator.shm_size="64"
            eaccelerator.cache_dir="/tmp/eaccelerator"
            eaccelerator.enable="1"
            eaccelerator.optimizer="1"
            eaccelerator.check_mtime="1"
            eaccelerator.debug="0"
            eaccelerator.filter=""
            eaccelerator.shm_max="0"
            eaccelerator.shm_ttl="3600"
            eaccelerator.shm_prune_period="3600"
            eaccelerator.shm_only="0"
            eaccelerator.compress="1"
            eaccelerator.compress_level="9"
            EOF
            tail -15 php.ini
          测试缓存的配置情况
            /application/php/bin/php -v
          重启PHP服务的命令:
            pkill php-fpm
            ps -ef|grep php-fpm|grep -v prep
            /application/php/sbin/php-fpm
            ps -ef|grep php-fpm|grep -v grep|wc -l
          查看缓存目录/tmp/eaccelerator
          ls -l /tmp/eaccelerator
      4.使用tmpfs优化eAccelerator缓存目录
          mount -t tmpfs -o size=16m tmpfs /tmp/eaccelerator #创建16创建16M大小的tmpfs 类型文件系统挂载到/tmp/eaccelerator
          df -h #检查挂载的情况
          grep eacc /proc/mounts #检查挂载的情况
          tail -1 /etc/fstab #配置永久挂载,生产场景size可以根据实际情况调整
          umount /tmp/eaccelerator/
          grep eacc /proc/mounts
          mount -a #测试永久挂载
          grep eacc /proc/mounts

    四、压力测试
        软件:webbench
        cd /home/hty/tools/
        wget http://www.ha97.com/code/webbench-1.5.tar.gz
        tar zxvf webbench-1.5.tar.gz
        cd webbench-1.5
        make
        make install
        ****
        安装报错:install: cannot create regular file `/usr/local/man/man1': No such file or directory
          原因是没有/usr/local/man/man1目录则直接创建目录
          mkdir -p /usr/local/man/man1
        ****
        检查安装是否成功
          echo $?
        测试命令:
          webbench -c [并发数] -t [运行时间] URL[网址]
          webbench -c 10 -t 10 http://blog.etiantian.org/view_info.php

          结果:
              [root@instance-yf0xzby9 webbench-1.5]# webbench -c 10 -t 10 http://blog.etiantian.org/view_info.php
              Webbench - Simple Web Benchmark 1.5
              Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

              Benchmarking: GET http://blog.etiantian.org/view_info.php
              10 clients, running 10 sec.

              Speed=29262 pages/min, 26821110 bytes/sec.
              Requests: 4877 susceed, 0 failed.

              测试结果:每秒钟响应请求数:29262 pages/min,每秒传输数据量:26821110 bytes/sec
                      返回数:4877 susceed, 0 failed

              webbench帮助:
              查看webbench使用帮助:

                [root@web02 ~]# webbench –help
                webbench [option]… URL
                -f|–force Don’t wait for reply from server.
                -r|–reload Send reload request – Pragma: no-cache.
                -t|–time <sec> Run benchmark for <sec> seconds. Default 30.
                -p|–proxy <server:port> Use proxy server for request.
                -c|–clients <n> Run <n> HTTP clients at once. Default one.
                -9|–http09 Use HTTP/0.9 style requests.
                -1|–http10 Use HTTP/1.0 protocol.
                -2|–http11 Use HTTP/1.1 protocol.
                –get Use GET request method.
                –head Use HEAD request method.
                –options Use OPTIONS request method.
                –trace Use TRACE request method.
                -?|-h|–help This information.
                -V|–version Display program version.

  • 相关阅读:
    spring hibernate 调用存储过程
    Mybatis mapper配置
    流量红包算法
    带搜索的下拉框Chosen
    生成二维码
    Linux netlink机制
    OpenFlow Switch学习笔记(七)——Matching Fields
    Hierarchical Token Bucket
    OpenvSwitch架构
    Examining Open vSwitch Traffic Patterns
  • 原文地址:https://www.cnblogs.com/01black-white/p/9728368.html
Copyright © 2011-2022 走看看