使用 Apache ab 测试并发负载压力

找到 ab.exe 文件所在位置,如我的在 D:\Software\phpStudy\PHPTutorial\Apache\bin 文件夹中,ab命令如下

./ab -n 100 -c 10 -p test.txt -T application/x-www-form-urlencoded http://demo.com/api/v2/index

-n发出100个请求,-c模拟10并发(相当10人同时访问),-p是存放参数的文件,后面是测试url

在 ab.exe 所在文件夹中创建 test.txt文件,文件中保存post参数

device_id=866351034455402&device_type=android&app_version=2.2.0&api_token=85faaa8cecba85c9c57e4d79aa195ef4&timestamp=1531793316&sign=f99cec7918c3e829a4e2e92739168091

服务端接收验证,创建 text.txt 文件,收到请求即写入字符,目的为了验证请求是否成功(此步骤可省略)

$myFile = fopen('./text.txt', 'a+');
fwrite($myFile, "123_\r\n");
fclose($myFile);
dd(123);

示例以及结果分析

[root@jia1 ~]# ab -n 100 -c 10 http://www.baidu.com/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.baidu.com (be patient).....done


Server Software:        BWS/1.1
Server Hostname:        www.baidu.com
Server Port:            80


Document Path:          /      #测试页面
Document Length:        112439 bytes     #测试页面大小

Concurrency Level:      10     #并发数
Time taken for tests:   1.256 seconds    #整个测试话费的时间
Complete requests:      100    #完成请求的总量
Failed requests:        96     #失败的请求次数
   (Connect: 0, Receive: 0, Length: 96, Exceptions: 0)
Write errors:           0
Total transferred:      11348660 bytes    #传输数据总大小
HTML transferred:       11253726 bytes    #传输页面总大小
Requests per second:    79.62 [#/sec] (mean)    #平均每秒请求数
Time per request:       125.593 [ms] (mean)     #平均每次并发10个请求的处理时间
Time per request:       12.559 [ms] (mean, across all concurrent requests)   #平均每个请求处理时间,所有并发的请求加一起
Transfer rate:          8824.29 [Kbytes/sec] received  #平均每秒网络流量

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   20   7.7     18      38
Processing:    18   90  50.5     82     356
Waiting:        4   22   7.9     22      41
Total:         22  111  50.7    101     384
#花费在连接Connect,处理Processing,等待Waiting的时间的最小min,平均值mean,标准差[+/-sd],中值median,最大表max的一个表。

Percentage of the requests served within a certain time (ms)
  50%    101   #50%请求的响应时间在101ms内
  66%    103   #66%请求的响应时间在103ms内
  75%    104   #...以此类推
  80%    105
  90%    111
  95%    267
  98%    311
  99%    384
 100%    384 (longest request)
原文链接:,转发请注明来源!

发表评论