ab工具
1. 安装ab
yum install httpd -y
2. ab参数介绍
-c Number of multiple requests to make at a time 并发请求数
-n Number of requests to perform 要执行的请求总数
-k 使用HTTP的KeepAlive特性
-e 输出结果到CSV文件中 ab -c 10 -n 100 -e /tmp/1.csv https://www.baidu.com/index.html
3. ab结果分析
Server Software: BWS/1.1 表示被测试的web服务器软件名称
Server Hostname: www.baidu.com 请求的URL主机名
Server Port: 443 表示被测试的web服务器软件的监听端口
SSL/TLS Protocol: TLSv1/SSLv3,ECDHE-RSA-AES128-GCM-SHA256,2048,128 协议
Document Path: /index.html 表示请求的URL中的根绝对路径
Document Length: 227 bytes 表示HTTP响应数据的正文长度
Concurrency Level: 10 表示并发请求数
Time taken for tests: 0.679 seconds 表示所有这些请求被处理完成所花费的总时间
Complete requests: 100 表示总请求数
Failed requests: 0
Write errors: 0
Total transferred: 109275 bytes
HTML transferred: 22927 bytes
Requests per second: 147.20 [#/sec] (mean) 吞吐率 计算公式:Complete requests/Time taken for tests 100/0.679
Time per request: 67.935 [ms] (mean) 用户平均请求等待时间 计算公式:Time token for tests/(Complete requests/Concurrency Level)
Time per request: 6.794 [ms] (mean, across all concurrent requests) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level。
Transfer rate: 157.08 [Kbytes/sec] received 表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 15 42 10.5 42 71
Processing: 4 22 8.9 20 43
Waiting: 4 15 8.1 13 38
Total: 28 64 14.4 63 103
Percentage of the requests served within a certain time (ms)
50% 63
66% 67
75% 72
80% 76
90% 84
95% 88
98% 102
99% 103
100% 103 (longest request)
4. 压力测试的几个概念
-
吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests -
并发连接数(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

浙公网安备 33010602011771号