一、简介
1、apache 测试工具 负载测试
ApacheBench 是一个指令列程式,可创建并发访问线程,模拟多个用户同时对某一地址进行访问。用来测试Web服务器的负载压力。
Liunx和Mac自带ApacheBench,终端中可直接进行命令控制。
2、命令及其参数选项
(1)Usage:ab [options] [http[s]?/]hostname[:port]/[path]
(2)可通过在命令后输入‘ab -help’来查看所有参数选项,经常用到的有:
-n requests:执行的请求个数(即本次测试需访问页面的次数)
-c concurrency:并发数(即本次测试同时访问的用户数)
-t timelimit:限制测试进行时长,单位为秒。其内部隐含值是-n 50000
二、实践
打开终端,输入命令ab -n 100 -c 100 http://localhost:8899/test,运行,结果及分析如下:
Amy:~ Amy$ ab -n 100 -c 100 http://localhost:8899/test
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient).....done
Server Software:
Server Hostname: localhost
Server Port: 8899
Document Path: /test
Document Length: 4 bytes //页面字节数
Concurrency Level: 100 //并发数
Time taken for tests: 0.089 seconds //测试时长
Complete requests: 100 //完成的请求数
Failed requests: 0 //失败的请求数
Total transferred: 13600 bytes //请求的响应数据长度总和,包括所有http响应数据的头和正文数据的长度(不包括http请求数据的长度,仅为web服务器流向用户PC的应用层数据总长度)
HTML transferred: 400 bytes //所有请求的响应数据中正文数据的长度总和,即减去Total transferred中的HTTP响应数据中的头信息的长度总和
Requests per second: 1120.88 [#/sec] (mean)//请求数/秒(平均值),吞吐率,最重要的指标,反映了接口的并发承受能力,即系统的峰值性能(计算公式:Complete requests/Time taken for tests)
Time per request: 89.216 [ms] (mean)//请求响应时间(平均值),即一次并发所用时长(计算公式:Time taken for tests/(Complete requests/Concurrency Level))
Time per request: 0.892 [ms] (mean, across all concurrent requests)//每个请求的时长(平均值),即一次请求所需时长(计算公式:Time taken for tests/Complete requests)
Transfer rate: 148.87 [Kbytes/sec] received//请求在单位时间(/s)内从服务器获取到的数据长度(计算公式:Total transferred/Time taken for tests),此结果可说明当服务器的处理能力到达极限时,其出口宽带的需求量。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 4 1.5 4 7
Processing: 2 51 27.9 62 79
Waiting: 2 43 27.1 56 79
Total: 8 55 27.3 66 86
//此部分数据用于描述每个请求响应时间的分布情况,在此次测试中,80%的请求处理时间都不超过80ms,最大响应时间小于86ms。前面的Time per request是此组数据的平均值。
Percentage of the requests served within a certain time (ms)
50% 66
66% 75
75% 79
80% 80
90% 82
95% 83
98% 85
99% 86
100% 86 (longest request)