• ​Php加速原理及工具试验


       Php加速原理及工具测试

    本实验相关软件地址:http://pan.baidu.com/s/1dDuwvE5

    第一部分。Php加速分类:

    一.缓冲层级别的优化

    1.xCache是把 PHP 操作码缓存到内存中的 PHP 扩展中,XCache 将避免代价高昂且不必要的花费来重新编译相同的 PHP 代码去交付一个页面,这一点上和Accelerator有点相似,我一直认为他们的机理是一样的,不过xCahce是开源产品[opensource].

    2.Zend Accelerator 站在解析和执行的中间,当页面第一次被请求时,Zend 引擎解析了它,而Accelerator 把解析的映象放入内存,然后执行并把信息发送给浏览器。 好像也叫Zend Cache。

    3.Memcache 守护程序 (memcached) 是一种高性能分布式对象缓存。memcached 的安装位置介于应用程序与数据存储之间,它将把对象保存在 RAM 中。每次缓存命中将替换到数据库服务器的一次往返,使应用程序运行得更快。非常适合访问量大的网站使用。

    4.APC (Alternative PHP Cache)它对php opcode进行缓冲,而不是迫使php在每一次执行的时候都重新解释每一个脚本.

    二.优化代码级别

    Zend Optimizer就要对PHP 源码作相应的调整,比如去掉一些PHP注释,使得代码更容易编译。

    三.编程时级别的优化

    XDebug 是类似于软件 x 光照片的内容:它将深入应用程序,揭露内部工作原理,并且揭示代码如何度过其周期。拥有了 XDebug 度量之后 —— 而不是之前 —— 您可以优化代码来调整算法、减少瓶颈并减轻过多的内存使用。

    第二部分。加速演示

    我在这里给大家用php5.4版本来演示在CentOS6.4下几种不同的加速器的加速效果。

    1.Opcache(在php5.5以后得版本中都已经被内置);

    2.Xcache;

    3.APC (Alternative PHP Cache)

    演示之前要先安装php5.4:

    1.拆包:

    [root@centos ~]# tar -jxvf php-5.4.24.tar.bz2 -C /usr/local/src/

    2.进入 /usr/local/src/目录,执行安装:

    [root@centos php-5.4.24]# ./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all

    3.最后make 和make install:

    [root@centos php-5.4.24]# make && make install

    4.创建php.ini,它是指明php扩展功能,如加速等功能的文件;

    [root@centos php-5.4.24]# cp php.ini-development /usr/local/php/lib/php.ini

    5.测试php与apache的连接:

    在httpd站点主目录下新建静态网页:

    [root@centos ~]# cd /usr/local/apache/htdocs/

    [root@centos htdocs]# vim index.php 写入如下:

    <?php

    phpinfo();

    ?>

    在浏览器内用(http://服务器地址) 方式访问服务器;

    出现php版本信息的话则连接正常。

    一.Zend OPCache:

    1.安装

    [root@centos ~]# tar -xzf zendopcache-7.0.2.tgz -C /usr/local/src/

    [root@centos ~]# cd /usr/local/src/zendopcache-7.0.2/

    添加pocache的扩展模块:

    [root@centos zendopcache-7.0.2]# /usr/local/php/bin/phpize

    执行安装环境:

    [root@centos zendopcache-7.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config

    执行最后的安装:

    [root@centos zendopcache-7.0.2]# make && make install

    2.配置

    编辑php.ini文件:

    vim /usr/local/php/lib/php.ini 在下面添加下面内容:

    [opcache]

    zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/opcache.so

    opcache.enable=1

    opcache.memory_consumption=128

    opcache.interned_strings_buffer=8

    opcache.max_accelerated_files=4000

    opcache.revalidate_freq=60

    opcache.fast_shutdown=1

    opcache.enable_cli=1

    3.测试opcache.so的调用:

    打开浏览器,输入http://192.168.2.101/(具体主机ip),出现opcache模块为正常;

    wKiom1LjClfTdU17AAJY2RRe-ok728.jpg

    4.安装phpmyadmin并利用httpd的压力测试工具ab进行性能测试;

    安装phpmyadmin并放到apache的站点主目录下;

    [root@centos ~]# unzip phpMyAdmin-4.1.5-all-languages.zip

    [root@centos ~]# mv phpMyAdmin-4.1.5-all-languages /usr/local/apache/htdocs/phpmyadmin

    5..在开启opcache时测试:

    [root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

    部分测试信息如下,不同的机器测试结果不一样:

    wKioL1LjCjTAT9i-AAG-EQP8fbs370.jpg

    5.关闭opcache时测试:

    关闭opcache:具体做法是编辑/usr/local/php/lib/php.ini 文件,把我们加入的关于opcache的所有内容前面加分号(;),保存后重启httpd服务[root@centos ~]# service httpd restart。

    再次测试:

    [root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

    部分测试信息如下:

    wKiom1LjCleDpwc8AAH3oPHtv_I622.jpg

    这就对比出opcache加速时处理并发连接请求的速度提升。

    二.Xcache:

    1.安装xcache:

    [root@centos ~]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src/

    [root@centos ~]# cd /usr/local/src/xcache-3.1.0

    [root@centos xcache-3.1.0]#  /usr/local/php/bin/phpize

    [root@centos xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

    [root@centos xcache-3.1.0]# make && make install

    进入目录/usr/local/src/xcache-3.1.0,

    [root@centos xcache-3.1.0]# cat xcache.ini >> /usr/local/php/lib/php.ini

    2.编辑usr/local/php/lib/php.ini文件

    加入下面一行:

    extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

    3.测试xcache.so的调用:

    打开浏览器,输入http://192.168.2.101/(具体主机ip),出现xcache模块为正常;

    wKioL1LjCjSQDM9WAAI7b_TIhfc983.jpg

    4.测试加速效果:

    1.在开启xcache时测试:

    [root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

    部分测试信息如下,不同的机器测试结果不一样:

    wKiom1LjCljQ0CpJAAJc6z5TAz8346.jpg

    2.关闭xcache时测试:

    关闭xcache:具体做法是编辑/usr/local/php/lib/php.ini 文件,把我们加入的关于xcache的所有内容前面加分号(;),保存后重启httpd服务[root@centos ~]# service httpd restart。

    再次测试:

    [root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

    部分测试信息如下:

    wKioL1LjCobSY0uaAAHl8BSiMTs767.jpg

    经过对比可以看到xcache的加速效果。

    三.APC (Alternative PHP Cache)

    1.安装

    tar -zxvf APC-3.1.10.tgz -C /usr/local/src/

    [root@centos APC-3.1.10]# /usr/local/php/bin/phpize

    [root@centos APC-3.1.10]# ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config

    [root@centos APC-3.1.10]# make && make install

    2.编辑:/usr/local/php/lib/php.ini

    在后面加入:

    [apc]

    extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/apc.so

    apc.enabled = 1

    apc.shm_segments = 1

    apc.shm_size = 64M

    apc.optimization = 1

    apc.num_files_hint = 0

    apc.ttl=7200

    apc.user_ttl=7200

    apc.gc_ttl = 3600

    apc.cache_by_default = on

    保存,重启httpd服务;

    3.测试加载模块情况;

    访问服务器:http://192.168.2.101/  结果出现apc模块即可。

    wKiom1LjCqmixMyxAAKHixwaGHk649.jpg

    4.测试加速情况:

    1.开启apc加速时:

    [root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

    部分结果如下:

    wKioL1LjCoaQkS0dAAI4HPb0KUg889.jpg

    2.关闭apc加速时:

    关闭apc加速:

    编辑/usr/local/php/lib/php.ini:

    把添加的apc的几行代码都屏蔽掉;(前面加分号;)

    重启httpd服务;[root@centos lib]# service httpd restart

    查看处理能力,

    [root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

    部分结果显示:

    wKiom1LjCqqzyNsvAAIm_xKxk_M429.jpg

    可以看到加速效果没有前两个明显,但是还是能起到一点加速能力的。

    感谢大家阅读!

  • 相关阅读:
    宠物店4.0的安装
    《professional asp.net 2.0》读书笔记连载2
    《xhtml 入门系列》之一
    ALinq 让Mysql变得如此简单
    ALinq 入门学习(八)ALinq 对Vs2010 的支持
    教你一款极为简单实用的图表插件
    虚拟机下无法启动 Linux 系统
    怎样去突破文件依赖缓存
    jQuery 表单验证扩展(五)
    Log4Net 全方位跟踪程序运行
  • 原文地址:https://www.cnblogs.com/w10234/p/6625170.html
Copyright © 2020-2023  润新知