我们知道压力测试的软件确实很多,诸如微软的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[s]://]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.51cto.com/index.php,其中 -n1000 表示总请求数 -c10表示并发用户数为10 http://www.51cto.com/index.php 表示请求的URL,下面是测试的结果,其中我们最关心的三个指标,我已经注释出来了。
studiogang@studiogang$ ab -n1000 -c10 http://www.51cto.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.51cto.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.51cto.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)
实验之前我的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[s]://]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.51cto.com/index.php,其中 -n1000 表示总请求数 -c10表示并发用户数为10 http://www.51cto.com/index.php 表示请求的URL,下面是测试的结果,其中我们最关心的三个指标,我已经注释出来了。
studiogang@studiogang$ ab -n1000 -c10 http://www.51cto.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.51cto.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.51cto.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)
发表评论
-
Nginx 502错误触发条件与解决办法汇总
2011-12-07 20:41 897一些运行在Nginx上的网 ... -
Nginx 502错误触发条件与解决办法汇总
2011-12-07 20:41 790一些运行在Nginx上的网 ... -
nginx+php
2011-09-06 11:12 13971. 安装系统组件 yum -y install gcc gc ... -
error while loading shared libraries的解決方法
2011-08-31 22:55 1018./tests: error while loading sh ... -
HTTP守护进程的运行参数
2011-08-26 16:45 1571httpd.conf中首先定义了一 ... -
apache页面压缩配置
2011-08-26 16:41 1051为了加快客户端的页面读取速度,我们需要安装配置mod_defl ... -
设置自动启动apache
2011-08-26 16:38 793安装完毕后,Apache并不会关机后自动启动,需要手工进行一些 ... -
apache线程参数设置
2011-08-26 16:20 2976如何知道apache是工作在哪个模式下的,答案很简单:apac ... -
linux下安装gd库
2011-08-26 16:16 80381. 先检查系统是否已经安装gd库 安装gd库 ... -
linux下配置solr
2011-08-23 09:41 18541. SOLR安装 将SOLR发行包解压,复制dist ... -
apache:与tomcat集群
2011-07-11 09:43 17491. 方法一:通过mod_jk集群 1.1 mod_jk下载 ... -
tomcat配置——连接池
2011-07-11 09:40 11071. Tomcat连接池配置 1. 1 Tomcat默认连接 ... -
tomcat 配置
2011-07-11 09:37 8551. 设置虚拟机内存 (1)方式一:在catalina.bat ... -
tomcat安装使用
2011-07-11 09:34 14111. 安装tomcat 从http://tomcat. ... -
linux PHP的安装
2011-07-08 16:46 142772. 红帽Linux PHP 2.1. 安装linux PHP ... -
Windows PHP的安装
2011-07-08 14:56 9681. Windows PHP 1.1. 安装 PHP (1) ... -
apache的安装
2011-07-08 10:37 14751. apache安装 软件获取:http://htt ... -
Apache 虚拟主机配置
2011-07-08 10:08 8951. 增加监听端口: Listen 80 Listen 808 ...
相关推荐
Apache ab压力测试工具是HTTP服务器性能评估的重要工具,主要用于测试Apache服务器在特定条件下的处理能力。这个工具简单易用,可以提供对服务器性能的详细分析,帮助管理员优化配置,提升服务器响应速度,确保在高...
**压力测试工具ab详解** 压力测试是评估系统在高负载或大量并发请求下性能的重要手段。在IT行业中,尤其在服务器优化和应用性能管理中,压力测试工具扮演着至关重要的角色。"ab"(ApacheBench)就是这样一个简单而...
另一方面,ab(ApacheBench)是Apache HTTP Server自带的一个轻量级命令行工具,主要用于对Web服务器进行简单的HTTP请求压力测试。它能快速发送指定数量的请求,计算响应时间的平均值、中位数等统计信息,以评估...
Apache 压力测试工具ab是一个非常实用的性能测试工具,专门用于评估Apache HTTP服务器的性能。通过模拟多个并发用户发送请求,ab可以帮助管理员了解服务器在高负载下的表现,包括处理速度、吞吐量和资源利用率等关键...
Apache HTTP服务器自带了一个名为`ab`(ApacheBench)的简单压力测试工具,用于评估Web服务器的性能。它能够模拟多个并发用户请求,以此来测试服务器在高负载下的响应时间和吞吐量。本教程将详细介绍如何使用`ab`...
Apache的ab(ApacheBench)是一款简单而强大的压力测试工具,专用于接口和并发测试。在Web服务性能优化和系统负载能力评估中,ab扮演着关键角色。它可以帮助开发者和运维人员了解服务器在高并发情况下的表现,以及...
ApacheBench阿帕奇自带的压力测试工具
-n 即requests,用于指定压力测试总共的执行次数。 -c 即concurrency,用于指定的并发数。 -t 即timelimit,等待响应的最大时间(单位:秒)。 -b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。 -p 即...
- 提供的`.mht`文件,如“Web性能压力测试工具之ApacheBench(ab)详解.mht”和“Siege使用教程.mht”,包含了详细的使用指南和实例,可以帮助用户深入理解这些工具的用法。 总的来说,Web压力测试是保障网站可靠...
压力测试工具-ab工具是Apache HTTP服务器自带的一款压力测试工具,用于模拟多个并发用户对Web服务器的访问请求,以测试Web服务器的性能和稳定性。下面是关于ab工具的详细知识点: 1. ab工具的安装和配置 ab工具是...
ApacheBench是一款由Apache HTTP服务器项目开发的压力测试工具,主要用于评估Web服务器的性能。它能够模拟多个并发用户向服务器发送请求,从而分析服务器在高负载情况下的响应速度和稳定性。这款小巧但强大的工具...
apacheApache自带的性能测试工具ab的使用[1]软件测试Apache自带的性能测试工具ab的使用小弟在学校负责一个测试团队,为学校的项目做测试,其间有些肤浅的作品,还请各位前辈多多指导^__^1概述ab(ApacheBench)是...
"ab"(ApacheBench)是Apache HTTP服务器自带的一个简单压力测试工具,用于模拟多个并发用户对Web服务器进行请求,以此来测量服务器的处理能力和响应速度。 **ab工具详解** 1. **安装与使用** - 安装:在大多数...
在IT行业中,性能测试是评估系统稳定性和承载能力的重要环节,而`ab`(ApacheBench)就是一个广泛使用的轻量级压力测试工具。它由Apache HTTP服务器项目开发,主要用于测试Web服务器的性能。下面我们将深入探讨`ab`...
《压力测试工具ab使用详解》 在IT行业中,性能测试是评估系统稳定性和承载能力的重要环节,而压力测试工具则是实现这一目标的关键助手。本文将深入探讨一款名为“ab”的命令行工具,它是一个轻量级但功能强大的HTTP...
NULL 博文链接:https://2279972332.iteye.com/blog/1989163
Apache JMeter是Apache组织开发的基 于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI脚本...
Apache JMeter是一款强大的、开源的压力测试工具,专为评估应用程序的性能和稳定性而设计。它最初是为了测试Web应用,但随着时间的发展,其功能已经扩展到支持多种协议和服务,包括HTTP、FTP、SMTP、JDBC、SOAP、RMI...
Apache JMeter是一款强大的开源性能测试工具,主要用于模拟大量并发用户对Web应用进行负载和压力测试。JMeter由Apache Software Foundation开发,支持多种协议,包括HTTP、FTP、SMTP、JDBC等,因此它不仅可以用于...