压测

2020-01-11  本文已影响0人  9吧和9说9话

压测关注的指标

  1. 吞吐率: 总请求数 / 处理完成这些请求数所花费的时间
    ab工具中对应关系:
    Request per second = Complete requests / Time taken for tests
    
  2. 用户平均请求等待时间
    计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
  1. 服务器平均请求等待时间(Time per request)
    计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
  1. 失败率
    计算公式:失败请求数/ 总请求数,即
Failed requests / Complete requests

常用的压测工具

  1. ab
ab -c 100 -n 1000 https://www.tmall.com/?from=m

// 测试结果输出
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.tmall.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        Tengine
Server Hostname:        www.tmall.com
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-ECDSA-AES128-GCM-SHA256,256,128
TLS Server Name:        www.tmall.com

Document Path:          /?from=m
Document Length:        246724 bytes

Concurrency Level:      100
Time taken for tests:   22.526 seconds        // 压测总耗时
Complete requests:      1000                        // 完成请求数
Failed requests:        0                                 // 失败数
Total transferred:      247719906 bytes
HTML transferred:       246724000 bytes
Requests per second:    44.39 [#/sec] (mean)   // 吞吐率
Time per request:       2252.558 [ms] (mean)    // 用户平均等待时间
Time per request:       22.526 [ms] (mean, across all concurrent requests)  // 平均请求处理时间
Transfer rate:          10739.52 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      151  994 564.9    815    3325
Processing:   225  955 779.5    664    5704
Waiting:       15  280 515.0    153    4603
Total:        661 1949 1014.4   1561    6819

Percentage of the requests served within a certain time (ms)
  50%   1561
  66%   2235
  75%   2350
  80%   2475
  90%   3270
  95%   4142
  98%   4559
  99%   5901
 100%   6819 (longest request)

常用的选项:
-c 并发数:
-n 请求总数

  1. autocannon
autocannon -c 100 -a 1000 https://www.tmall.com/?from=m
// 结果
 ─────────┬───────┬────────┬─────────┬─────────┬───────────┬───────────┬────────────┐
│ Stat    │ 2.5%  │ 50%    │ 97.5%   │ 99%     │ Avg       │ Stdev     │ Max        │
├─────────┼───────┼────────┼─────────┼─────────┼───────────┼───────────┼────────────┤
│ Latency │ 39 ms │ 312 ms │ 3143 ms │ 3841 ms │ 621.95 ms │ 840.09 ms │ 6950.21 ms │
└─────────┴───────┴────────┴─────────┴─────────┴───────────┴───────────┴────────────┘
┌───────────┬─────┬──────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ Stat      │ 1%  │ 2.5% │ 50%     │ 97.5%   │ Avg     │ Stdev   │ Min     │
├───────────┼─────┼──────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Req/Sec   │ 0   │ 0    │ 116     │ 134     │ 90.82   │ 49.35   │ 9       │
├───────────┼─────┼──────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Bytes/Sec │ 0 B │ 0 B  │ 28.8 MB │ 33.2 MB │ 22.5 MB │ 12.2 MB │ 2.23 MB │
└───────────┴─────┴──────┴─────────┴─────────┴─────────┴─────────┴─────────┘

Req/Bytes counts sampled once per second.

999 requests in 11.12s, 248 MB read
1 errors (1 timeouts)

参考:

  1. https://clinicjs.org/
  2. https://github.com/mcollina/autocannon
  3. ab 文档
  4. 简书 ab简介
上一篇 下一篇

猜你喜欢

热点阅读