【负载测试】Mac下进行Web并发测试-ApacheBench

一、简介

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)

你可能感兴趣的:(小妙招)