设为首页 收藏本站
查看: 1555|回复: 0

[经验分享] Apache自带的压力测试工具——ab初体验

[复制链接]

尚未签到

发表于 2017-1-11 06:06:16 | 显示全部楼层 |阅读模式
我们知道压力测试的软件确实很多,诸如微软的WAST,惠普的LoadRunner以及等等其他的,但这些软件学习起来还是需要花费些时间,在选择上实在头痛,后来在郭欣的那本《构建高性能WEB站点》上看到了他介绍的这款Apache自带的压力测试工具ab,十分喜爱,于是今天终于有机会体验下ab对网站的压力测试。

    实验之前我的apache已经安装了,操作系统:Ubuntu 10.04 VMware 7.0

1、先查看一下版本信息 ab -V(注意是大写的V)



studiogang@studiogang$ ab -V


This is ApacheBench, Version 2.3 <$Revision: 655654 $>  

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  

Licensed to The Apache Software Foundation, http://www.apache.org/  

2、我们也可以使用小写的v查看下ab命令的一些属性 ab -v



studiogang@studiogang$ ab -v  

ab: option requires an argument -- v  

ab: wrong number of arguments  

Usage: ab [options] [http://]hostname[:port]/path  

Options are:  

    -n requests     Number of requests to perform  

    -c concurrency  Number of multiple requests to make  

    -t timelimit    Seconds to max. wait for responses  

    -b windowsize   Size of TCP send/receive buffer, in bytes  

    -p postfile     File containing data to POST. Remember also to set -T  

    -u putfile      File containing data to PUT. Remember also to set -T  

    -T content-type Content-type header for POSTing, eg.  

                    'application/x-www-form-urlencoded'  

                    Default is 'text/plain'  

    -v verbosity    How much troubleshooting info to print  

    -w              Print out results in HTML tables  

    -i              Use HEAD instead of GET  

    -x attributes   String to insert as table attributes  

    -y attributes   String to insert as tr attributes  

    -z attributes   String to insert as td or th attributes  

    -C attribute    Add cookie, eg. 'Apache=1234. (repeatable)  

    -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'  

                    Inserted after all normal header lines. (repeatable)  

    -A attribute    Add Basic WWW Authentication, the attributes  

                    are a colon separated username and password.  

    -P attribute    Add Basic Proxy Authentication, the attributes  

                    are a colon separated username and password.  

    -X proxy:port   Proxyserver and port number to use  

    -V              Print version number and exit  

    -k              Use HTTP KeepAlive feature  

    -d              Do not show percentiles served table.  

    -S              Do not show confidence estimators and warnings.  

    -g filename     Output collected data to gnuplot format file.  

    -e filename     Output CSV file with percentages served  

    -r              Don't exit on socket receive errors.  

    -h              Display usage information (this message)  

    -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)  

    -f protocol     Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)  

3、现在我们就对51CTO的网站进行一次压力测试吧,使用命令ab -n1000 -c10 http://www.iyunv.com/index.php,其中 -n1000 表示总请求数 -c10表示并发用户数为10 http://www.iyunv.com/index.php 表示请求的URL,下面是测试的结果,其中我们最关心的三个指标,我已经注释出来了。





studiogang@studiogang$ ab -n1000 -c10 http://www.iyunv.com/index.php


This is ApacheBench, Version 2.3 <$Revision: 655654 $>  

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  

Licensed to The Apache Software Foundation, http://www.apache.org/  






Benchmarking www.iyunv.com (be patient)  

Completed 100 requests  

Completed 200 requests  

Completed 300 requests  

Completed 400 requests  

Completed 500 requests  

Completed 600 requests  

Completed 700 requests  

Completed 800 requests  

Completed 900 requests  

Completed 1000 requests  

Finished 1000 requests  




/*WEB服务器用的是nginx*/

Server Software:        nginx  

Server Hostname:        www.iyunv.com  

Server Port:            80





Document Path:          /index.php  

Document Length:        154 bytes  




Concurrency Level:      10


Time taken for tests:   74.373 seconds  

Complete requests:      1000


Failed requests:        0


Write errors:           0


Non-2xx responses:      1000


Total transferred:      330000 bytes  

HTML transferred:       154000 bytes

/*大家最关心的指标之一,指的是吞吐率

相当于 LR 中的
每秒事务数
,后面括号中的 mean 表示这是一个平均值*/  

Requests per second:    13.45 [#/sec] (mean)

/*大家最关心的指标之二,指的是用户平均请求等待时间

相当于 LR 中的
平均事务响应时间
,后面括号中的 mean 表示这是一个平均值*/

Time per request:       743.726 [ms] (mean)

/*大家最关心的指标之三,指的是服务器平均请求处理时间

Time per request:       74.373 [ms] (mean, across all concurrent requests)  

Transfer rate:          4.33 [Kbytes/sec] received  




Connection Times (ms)  

              min  mean[+/-sd] median   max  

Connect:      129
163 245.3
145
3154


Processing:   129
576 1510.8
147
11756


Waiting:      129
567 1502.0
147
11756


Total:        261
739 1543.7
294
11888





Percentage of the requests served within a certain time (ms)  


50%
294



66%
297



75%
304



80%
308



90%
1290



95%
3452



98%
7582



99%
7962



100%
11888 (longest request)  

4、为了使结果更有对比性,我们将并发用户更改为100个进行压力测试,我这里只将三个指标贴出来。



Requests per second:    190.95 [#/sec] (mean)  

Time per request:       523.694 [ms] (mean)  

Time per request:       5.237 [ms] (mean, across all concurrent requests)  

5、将并发用户改为200个进行测试



Requests per second:    186.00 [#/sec] (mean)  

Time per request:       1149.433 [ms] (mean)  

Time per request:       5.747 [ms] (mean, across all concurrent requests)  

6、500个并发用户时的情况



Requests per second:    180.99 [#/sec] (mean)  

Time per request:       2631.662 [ms] (mean)  

Time per request:       5.263 [ms] (mean, across all concurrent requests)  

     我们来分析下测试的结果,先对比下吞吐率,当并发用户的时候吞吐率最高为190 reqs/s,当并发用户数为200,500 吞吐率下降了,随之用户的等待时间更是明显增加了,已经有2s的等待时间了。这说明性能明显下降了。当然分析这个测试结果并不是说明51CTO的网站的并发用户只能在500左右,因为我是在服务器负荷的情况下就行测试的,这显然不能说明问题。另外我们在生产环境下测试的时候,最好能将测试结果做成报表,这样可以非常清晰地对比出问题来,好了,我该准备下,给上面提交一份我们公司网站的测试报告了。

2509*60*60*12=108388800 (一天12小时,应付单台机器一亿多pv)
2509*60*60*8=72259200 (少一点,算8小时,应付七千多万pv)
2509*60*60*2=18064800 (按高峰期来算,一般情况算四分之一,应付1800万pv)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-326596-1-1.html 上篇帖子: 【转】Apache的prefork模式和worker模式 下篇帖子: Apache的prefork模式和worker模式(ZZ)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表