0x01 前言

在这之前想必大家对ab(http)与abs(https)也有一些了解,我们今天不去看ab和abs,SuperBenchmarker(sb.exe)是一个压测工具,他是一个受Apache Benchmark的启发,他会在终端窗口为我们显示最终的结果,同时也会在web界面生成一个动态结果。SuperBenchmarker(sb.exe)可以在Windows或者Mac上运行(尚未在Linux上进行测试),他可以安装在.NET4.52+或者.NET Core2.0+。

0x02 安装

我们可以直接拉取源代码进行构建

git clone https://github.com/aliostad/SuperBenchmarkercd SuperBenchmarker
./build.sh

0x03 参数

  • -c --concurrency (Default: 1) 并发请求数

  • -n, --numberOfRequests (Default: 100) 请求数量

  • -m, --method (Default: GET) HTTP Method

  • -u, --url 请求地址,也就是需要压测的地址

  • -v,--verbose:输出详细

  • -h, --headers:输出HTTP Header

  • -k, --cookies:输出cookie

  • -q, --onlyRequest:仅输出请求信息

0x04 运行

dotnet ./src/SuperBenchmarker/bin/Debug/netcoreapp2.0/SuperBenchmarker.dll -u https://baidu.com -N 10

如下所示:

通过如下结果图我们可以看到吞吐率(RPS)和总请求数量(requests)、最大处理时长、最小处理时长、平均时长等信息

TPS吞吐量请求数/请求响应的时间(s) ,即每秒请求数,对应 Request per second
响应时间:请求发送到接受到请求的时间差,单位为ms,一般看90%的响应时间
并发连接数:每秒服务器端能处理的连接数。并发连接数 = 吞吐量*响应时间

TPS和QPS区别
QPS:Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器(比如是读写分离的架构,就是读的服务器)在规定时间内所处理流量多少的衡量标准。

TPS:TransactionsPerSecond,意思是每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

QPS计算

QPS = req/sec = 请求数/秒

【QPS计算PV和机器的方式】

QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / (进程总数 * 请求时间)
QPS: 单个进程每秒请求服务器的成功次数

单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8

服务器计算
服务器数量 = ceil(每天总PV / 单台服务器每天总PV)

【峰值QPS和机器计算公式】

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:(总PV数 * 80%) / (每天秒数 * 20%) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:(3000000 * 0.8) / (86400 * 0.2) = 139 (QPS)

问:如果一台机器的QPS是58,需要几台机器来支持?

答:139 / 58 = 3

Reference

https://www.cnblogs.com/Renyi-Fan/p/12040781.html
https://github.com/aliostad/SuperBenchmarker
https://www.cnblogs.com/uncleyong/p/11059556.html

SuperBenchmarker一个用.NET编写的压测工具相关推荐

  1. web版本 开源压测工具_开源了一个简单的http服务压测工具Alex,自带web ui,golang实现...

    Alex是基于vegeta library和boom封装的压力测试web UI.Vegeta提供稳定的qps压力源,boom提供稳定的并发数压力源. github地址 https://github.c ...

  2. web版本 开源压测工具_Web压测工具之Webbench和http_load

    Webbench简介 是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况. webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每 ...

  3. python服务端多进程压测工具

    本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...

  4. 从0到1构建美团压测工具

    背景 美团内部的RPC服务大多构建在Thrift之上,在日常开发服务的过程中,需要针对这些服务进行压力测试(以下简称压测)来发现潜在问题.常用的方法有: 使用一些脚本语言如:Python.Ruby等, ...

  5. 云效平台性能测试功能:一个基于Jmeter的性能压测平台

    云效平台性能测试功能(Galaxy)是一个基于Jmeter的性能压测平台,它集脚本.场景.压测.监控和报表展示为一体,是一个能快速.低成本实施压测的平台.降低了入门使用成本,让开发和测试都可以方便的执 ...

  6. SuperBenchmarker 压测工具

    SuperBenchmarker 压测工具 一.使用 chocolatey 安装 使用管理员权限打开 Power Shell 输入 choco 查看是否安装了chocolatey choco 二.安装 ...

  7. 实现一个简单的压测工具

    公司开发了一些服务器程序:上生产前需要进行压力测试,测试点包括:并发数.响应时间.吞吐量等指标.领导说,能不能仿照LoadRunner实现一个简单的压测工具(并发数在10000以上,结果指标以曲线图的 ...

  8. 一个集成redis-benchmark的redis压测的脚本

    一个集成redis-benchmark的redis压测的脚本 支持 单节点 主从 sentinel cluster (sentinel的还没写) 出于高可用的考虑,你还可以用高可用的ip做压力测试 需 ...

  9. 基于python的压测工具_Python Locust性能测试简介及框架实践

    Locust(俗称 蝗虫), 一个轻量级的开源压测工具,用Python编写.使用 Python 代码定义用户行为,也可以仿真百万个用户: Locust 非常简单易用,是分布式,用户负载测试工具.Loc ...

最新文章

  1. Memcached在大型网站中应用
  2. RNAseq-GO、biomaRt转换ID
  3. java学习笔记(一) ----java下常用的包功能
  4. 功能安全-26262(2018) part5
  5. Qt Creator从Maya导出3D资产
  6. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较
  7. 2016-12-31:最后一天:回顾
  8. DedeCMS四类核心表
  9. jQuery 的CSS选择器 中 使用变量的方法
  10. UITextField 文字垂直居中
  11. php封装webservice_php实现webservice实例_PHP
  12. 计算机术语 打桩,动力打桩公式
  13. 百度网盘下载一直请求中问题解决
  14. 保存网页html 有什么,保存网页时HTML和MHTML区别在哪里
  15. 报错:WebMvcConfigurer.class cannot be opened because it does not exist
  16. C# DLL资源文件打包(图片、JS、CSS)[WebResource]
  17. 搭建属于自己的云测试平台
  18. P2676 [USACO07DEC]Bookshelf B
  19. 联想笔记本进入pe_联想小新笔记本怎么进入bios设置U盘启动
  20. 下雨的时候你会想什么

热门文章

  1. 关于使用 jquery Validate 使用出现的问题
  2. 如何添加引文标_如何在Google文档中查找和添加引文
  3. 10以内数的组成分解图_大班数学教案《10以内数的组成》
  4. 二 面向对象三大特性
  5. 辨别真假数据科学家必备手册:深度学习45个基础问题(附答案)
  6. js温故而知新11(AJAX)——学习廖雪峰的js教程
  7. From Apprentice To Artisan 翻译 19
  8. Java编程比C编程好吗?《精通Unix下C语言与项目实践》读书笔记(15)
  9. Asp.NetCore3.1开源项目升级为.Net6.0
  10. 让前端与后端异步起来