首页 > 代码库 > ab压力测试及Xcache

ab压力测试及Xcache

使用ab进行对页面压力测试

    ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab

    我们可以模拟100个并发用户,对一个页面发送1000个请求

#ab -c 100 -n 1000 http://192.168.0.2/phpmyadmin
请求总数1000次,每次并发100
##首先是apache的版本信息 
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, 
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking 192.168.0.2 (be patient)
 
Server Software:        Apache/2.4.9  //版本号
Server Hostname:        192.168.0.2   //请求的主机
Server Port:            80            //访问的端口
 
Document Path:          /phpmyadmin   //网站的存放的路径
Document Length:        208 bytes     //页面长度
 
Concurrency Level:      100           //并发100
Time taken for tests:   0.543 seconds //使用的的时间
Complete requests:      1000          //请求的总数
Failed requests:        0             //失败请求
Non-2xx responses:      1000   
Total transferred:      396000 bytes  //总共传输字节数,包含http的头信息等
HTML transferred:       208000 bytes  //html字节数,实际的页面传递字节数
Requests per second:    1842.10 [#/sec] (mean)  //每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量 
Time per request:       54.286 [ms] (mean)  //用户平均请求等待时间 
Time per request:       0.543 [ms] (mean, across all concurrent requests)    //服务器平均处理时间,也就是服务器吞吐量的倒数 
Transfer rate:          712.37 [Kbytes/sec] received  //每秒获取的数据长度
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   18  11.4     13      68
Processing:     3   35  73.8     14     449
Waiting:        0   31  73.9     11     446
Total:         15   53  77.0     27     466
 
Percentage of the requests served within a certain time (ms)
  50%     27    //50%的请求在27ms内返回
  66%     40
  75%     45
  80%     53
  90%     80
  95%    183
  98%    357
  99%    463
 100%    466 (longest request)

    

    这里我配置了一个httpd+php+mysql的环境,装了一个phpmyadmin,然后对网页进行压力测试,如果大家要是测试的话就要从小的并发量开始测,我就是闲着没事干,弄了个总量5000,并发500的,结果就悲剧了,服务器直接卡死,网页刷新刷不出来,被迫关机。造成这种局面的根本所在就是,服务器的配置无法对大量的并发请求及时响应,如果有很多人访问这个网站,那么打开的速度就很慢,对客户的感官造成了影响。

        wKioL1P7SYGS5cK_AADItJGGvZ0382.jpg

        wKioL1P7SZ6Qw7mIAABZXUN7Mvg349.jpg

        wKiom1P7SKGj_cr2AACr2sf2iE4605.jpg

 

PHP加速器

    为了提高服务器的访问量我们可以配置php加速器Xcache,用缓存来提高页面的访问速度

    Xcache是开源的opcode和var的缓存器,它可以加速PHP的原因就是Xcache通过缓存用户已经请求的PHP编译结果,将PHP编译缓存保存在服务器的内存中以便用户再次请求同样PHP解析时不再用PHP再次编译直接从Xcache缓存结果中读取。避免PHP再次编译给服务器带来过大的负载。

 

    编译Xcache

    编译安装的时候,xcache是作为php的模块来使用的,编译的时候要指明php config的路径

# /usr/local/php/bin/phpize在编译之前,要用这个命令来生成configure文件,因为,解压之后的文件里没有configure文件,所以,要用这个命令来生成configure文件。再执行编译

        wKiom1P7TGXzBjkcAADh10nxpp0282.jpg

 

    来看一下phpize的帮助文档

#man -M /usr/local/php/php/man/ phpize

    因为上一次编译php的时候没有加入man手册,所以在这里必须使用man –M,提示说准备一个php扩展来实现编译

        wKiom1P7TMjxhWQDAAEVQdOwuh0036.jpg

 

#tar xf xcache-3.1.0.tar.gz
#cd xcache-3.1.0
#/usr/local/php/bin/phpize

        wKioL1P7TmOA7DfZAAGMnetzZpI196.jpg

 

#./configure --enable-xcache --with-phpconfig=/usr/local/php/bin/php-config
#make && make install

    创建一个目录,把xcache.ini复制到新建的目录中

#mkdir /etc/php.d
#cp xcache.ini /etc/php.d

 

    接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:

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

        wKiom1P7TjqzmxD3AABmk3OD89Y304.jpg

 

    查看php显示界面里是否有xcache 

        wKioL1P7T5KSDwvtAAHEqmDszc4229.jpg

 

    这就说明Xcache已经添加进php中了

    现在再来测试一下,看看访问速度有何改变

        wKiom1P7TtDQDeVMAAEejTL36s0177.jpg

    看着这个结果可以跟上面测试的对比一下,可以明显体验到php加速器的重要性。

 

服务器状态

    mod_status模块可以让管理员查看服务器的执行状态,它通过一个HTML页面展示了当前服务器的统计数据。这些数据通常包括但不限于:

        1.处于工作状态的worker进程数;

        2.空闲状态的worker进程数;

        3.每个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数;

        4.当前服务器总共发送的字节数;

        5.服务器自上次启动或重启以来至当前的时长;

        6.平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;

 

    启用状态页面的方法很简单,只需要在主配置文件中添加如下内容即可:

        <Location /status>

            SetHandler server-status

            Require all granted

        </Location>

 

    需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 192.168.0.3/24来限制仅允许指定网段的主机查看此页面。

        wKioL1P7UZzSreKFAALgBmR8x04605.jpg

本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1544959

ab压力测试及Xcache