ab压力测试工具

吞吐率(Requests per second)
  概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
  计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
  Request per second = Complete requests / Time taken for tests
  QPS(每秒查询数)、TPS(每秒事务数)是吞吐量的常用量化指标,另外还有HPS(每秒HTTP请求数)。
  跟吞吐量有关的几个重要是:并发数、响应时间。
  QPS(TPS),并发数、响应时间它们三者之间的关系是:
  QPS(TPS)= 并发数/平均响应时间
  对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。 
 对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。
  这是因为处理每个请求需要用到很多资源,由于每个请求的处理过程中有许多不走难以并发执行,这导致在具体的一个时间点,所占资源往往并不多。也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,
  如果资源配置合理,每个用户看到的平均响应时间并不随用户数的增加而线性增加。实际上,不同系统的平均响应时间随用户数增加而增长的速度也不大相同,这也是采用吞吐量来度量并发系统的性能的主要原因。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,
  如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。 

并发连接数(The number of concurrent connections)
  概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

  并发用户数(The number of concurrent users,Concurrency Level)
  概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
  并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。
  一网站系统为例,假设用户只有注册后才能使用,但注册用户并不是每时每刻都在使用该网站,因此具体一个时刻只有部分注册用户同时在线,在线用户就在浏览网站时会花很多时间阅读网站上的信息,因而具体一个时刻只有部分在线用户同时向系统发出请求。
  这样,对于网站系统我们会有三个关于用户数的统计数字:注册用户数、在线用户数和同时发请求用户数。由于注册用户可能长时间不登陆网站,使用注册用户数作为性能指标会造成很大的误差。而在线用户数和同事发请求用户数都可以作为性能指标。
  相比而言,以在线用户作为性能指标更直观些,而以同时发请求用户数作为性能指标更准确些。 

用户平均请求等待时间(Time per request)
  计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
  Time per request = Time taken for tests /( Complete requests / Concurrency Level)

服务器平均请求等待时间(Time per request: across all concurrent requests)
  计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
  Time taken for / testsComplete requests
  可以看到,它是吞吐率的倒数。
  同时,它也=用户平均请求等待时间/并发用户数,即Time per request / Concurrency Level

QPS每秒查询率(Query Per Second) 
  每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 (看来是类似于TPS,只是应用于特定场景的吞吐量)

 响应时间(RT) 
  响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,
    甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。 
  对于单机的没有并发操作的应用系统而言,人们普遍认为响应时间是一个合理且准确的性能指标。需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。对于一个游戏软件来说,响应时间小于100毫秒应该是不错的,
    响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。

CentOS7 ab压力测试安装与解释

  • Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具
    ,简单易用
  • 在此提供 ab 在 centOS7 下的安装和使用方法
  • 注:个人发现,之前安装的centos6.5 默认已安装了ab,具体原因不明

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

安装ab测试工具

①.ab(apache benchmark)安装
  • 命令:yum -y install httpd-tools

图片 1

参数说明及示例

yum install httpd-tools -y
②.ab测试的命令参数
  • 命令:abab -help
  • 显示命令参数如下

图片 2

  • ab [可选的参数选项] 需要进行压力测试的url
  • 参数说明:

此外,我们再根据上面的用法介绍界面来详细了解每个参数选项的作用。-n  即requests,用于指定压力测试总共的执行次数。-c  即concurrency,用于指定的并发数。-t  即timelimit,等待响应的最大时间(单位:秒)。-b  即windowsize,TCP发送/接收的缓冲大小(单位:字节)。-p  即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。-u  即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。-T  即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。-v  即verbosity,指定打印帮助信息的冗余级别。-w  以HTML表格形式打印结果。-i  使用HEAD请求代替GET请求。-x  插入字符串作为table标签的属性。-y  插入字符串作为tr标签的属性。-z  插入字符串作为td标签的属性。-C  添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。-H  添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。-A  添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。-P  添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。-X  指定使用的和端口号,例如:"126.10.10.3:88"。-V  打印版本号并退出。-k  使用HTTP的KeepAlive特性。-d  不显示百分比。-S  不显示预估和警告信息。-g  输出结果信息到gnuplot格式的文件中。-e  输出结果信息到CSV格式的文件中。-r  指定接收到错误信息时不退出程序。-h  显示用法信息,其实就是ab -help。

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

ab工具帮助
 
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。

③.ab的使用
  • 模拟并发请求100次,总共请求10000次
  • 命令模板: ab -c 100 -n 10000 待测试网站(建议完整路径)
  • 内容解释:

Server Software:        nginx/1.10.2 (服务器软件名称及版本信息)Server Hostname:        192.168.1.106(服务器主机名)Server Port:            80 (服务器端口)Document Path:          /index1.html. (供测试的URL路径)Document Length:        3721 bytes (供测试的URL返回的文档大小)Concurrency Level:      1000 (并发数)Time taken for tests:   2.327 seconds (压力测试消耗的总时间)Complete requests:      5000 (的总次数)Failed requests:        688 (失败的请求数)Write errors:           0 (网络连接写入错误数)Total transferred:      17402975 bytes (传输的总数据量)HTML transferred:       16275725 bytes (HTML文档的总数据量)Requests per second:    2148.98 [#/sec] (mean) (平均每秒的请求数) 这个是非常重要的参数数值,服务器的吞吐量 Time per request:       465.338 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间)Time  request:       0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)Transfer rate:          7304.41 [Kbytes/sec] received 每秒获取的数据长度 (传输速率,单位:KB/s)...Percentage of the requests served within a certain time (ms)  50%    347  ## 50%的请求在347ms内返回   66%    401  ## 60%的请求在401ms内返回   75%    431  80%    516  90%    600  95%    846  98%   1571  99%   1593 100%   1619 (longest request)

输入命令:ab -n1000 -c100 //www.jb51.net/

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图