压测

作者: 9吧和9说9话 | 来源:发表于2020-01-11 12:13 被阅读0次

压测关注的指标

  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简介

相关文章

  • 性能压测学习大纲

    一、压测的目的 二、压测的完整流程 三、压测场景分析/组织测试脚本 四、压测数据准备 五、压测指标监控 七、压测结...

  • 压测tips

    压测前: 明确压测的目的,观测指标; 准备好压测方案,几组case,case分别压测多久; 申请压测环境,告知进行...

  • 阶梯压测

    今天我们来浅谈一下阶梯压测,那么,什么是阶梯压测,什么时候做阶梯压测,阶梯压测和普通压测又有什么区别呢?阶梯压测:...

  • 02_压测流程步骤

    做压测的时候,首先我们得知道压测需求!大部分都是有压测指标的,只要能达到指标就算完成任务! 选择压测工具,编写压测...

  • 流量录制,基于常态化压测

    简介 常态化压测、业务压测、集群压测、全链路压测、等基于特定需求的对后台接口进行的并发式请求,接口自动化压测数据的...

  • 提升cpu使用率

    如何优化压测工具发压能力 -- 提升cpu使用率 压测工具工作流程 压测工具一般在性能压测过程中用于对被压的系统产...

  • go实现的压测工具【单台机器100w连接压测实战】

    本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter...

  • go 实现的压测工具,ab、locust、Jmeter压测工具介

    本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter...

  • 服务端压测总结篇一:如何完整的做一次压测

    服务端压测系列: 服务端压测总结篇二:压测中的疑惑 压测步骤 一般来说,一次完整的线上压测包括以下7个步骤 1.梳...

  • locust压测RPS无法提高问题解决

    1、压测机器负载过高2、压测脚本配置问题3、被压测机器负载过高4、带宽

网友评论

      本文标题:压测

      本文链接:https://www.haomeiwen.com/subject/ugrvgctx.html