前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SuperBenchmarker一个用.NET编写的压测工具

SuperBenchmarker一个用.NET编写的压测工具

作者头像
HueiFeng
发布2020-03-09 10:13:17
8400
发布2020-03-09 10:13:17
举报
文章被收录于专栏:HueiFeng技术专栏

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 安装

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

代码语言:javascript
复制
git clone https://github.com/aliostad/SuperBenchmarker
 cd 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 运行

代码语言:javascript
复制
dotnet ./src/SuperBenchmarker/bin/Debug/netcoreapp2.0/SuperBenchmarker.dll -u https://google.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

0x05 Reference

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档