压力测试tps是啥意思_高并发压力测试

压力测试tps是啥意思_高并发压力测试最近在对代码进行压力测试,这里整理一下压测中的指标和方法。文章目录1压力测试中的指标1.1TPS1.2QPS1.3平均处理时间(RT)1.4并发用户数(并发量)1.5换算关系1.5TPS和QPS的区别2压力测试方法3相关文档1压力测试中的指标1.1TPSTPS即TransactionsPerSecond的缩写,每秒处理的事务数目。一个事务是指一个客户机向服…

大家好,又见面了,我是你们的朋友全栈君。

最近在对代码进行压力测试,这里整理一下压测中的指标和方法。

1 压力测试中的指标

1.1 TPS

TPS 即Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程**(完整处理,即客户端发起请求到得到响应)**。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。一个事务可能对应多个请求,可以参考下数据库的事务操作。

1.2 QPS

QPS 即Queries Per Second的缩写,每秒能处理查询数目(完整处理,即客户端发起请求到得到响应)。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
我们从它的英文全名可以得出它是查询意思,原来在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数。 虽然名义上是查询的意思,但实际上,现在习惯于对单一接口服务的处理能力用QPS进行表述(即使它并不是查询操作)。

1.3 平均处理时间(RT)

RT:响应时间,处理一次请求所需要的平均处理时间。
我们一般还会关注90%请求的的平均处理时间,因为可能因网络情况出现极端情况。

1.4 并发用户数(并发量)

每秒对待测试接口发起请求的用户数量。

1.5 换算关系

QPS = 并发数/平均响应时间
并发量 = QPS * 平均响应时间

比如3000个用户(并发量)同时访问待测试接口,在用户端统计,3000个用户平均得到响应的时间为1188.538ms。所以QPS=3000/1.188538s= 2524.11 q/s。
我们就可以这样描述本次测试,在3000个并发量的情况下,QPS为2524.11,平均响应事件为1188.538ms

1.5 TPS和QPS的区别

这个问题开始,我认为这两者应该是同一个东西,但在知乎上看到他们的英文名,现在我认为:
QPS 每秒能处理查询数目,但现在一般也用于单服务接口每秒能处理请求数。
TPS 每秒处理的事务数目,如果完成该事务仅为单个服务接口,我们也可以认为它就是QPS。

PS:还有一个RPS的的概念 request per second 。每秒请求数,在一定条件下和QPS 和TPS类似。

2 压力测试方法

我们可以使用压测工具模拟多用户对系统进行压力测试。后面会有压测工具的介绍

而测试的方式是,以一定请求总量,保持不变,逐步增加并发量,观察QPS的变化及平均响应时间的变化。
比如10000的总请求数,然后测试100的并发量情况下的QPS值,然后200, 300, 400, 500等。

一个系统吞吐量通常由TPS、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达 到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。这里给出一份使用ab工具的压测图。
在这里插入图片描述
从图中可以看出2000的并发量时,QPS已经达到2500左右,后续加大并发数仍维持在2500,说明该接口在该配置下,QPS为2500,即每秒该系统的能力只能处理2500个请求左右,后面加大的并发量,只会导致平均响应时间的增加。(PS:因为每秒只能处理2500个请求,而一次性有7000的并发,自然会造成请求堆积,导致平均响应时间会变长)我们看到超过14000之后连QPS也开始急剧下降,说明系统超负荷工作,导致性能开始急剧下降。而一般情况下,我们认为平均响应时间达到一定值,就已经不可以接受了。

3 相关文档

估计物联网设备并发量整理的blog:
https://blog.csdn.net/m0_37263637/article/details/88649056
压力测试工具ab工具:
https://blog.csdn.net/m0_37263637/article/details/78558890
Node express框架压测结果:
https://blog.csdn.net/m0_37263637/article/details/88749198

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125192.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android 复制控件,Android长按复制文本功能[通俗易懂]

    android 复制控件,Android长按复制文本功能[通俗易懂]安卓一般能用到长按复制的控件Textview,Editext,可能也有WebView在开始之前先说一个我遇到的一个坑:viewGroup中有一个这个属性android:descendantFocusability=”blocksDescendants”这个属性有三个值:beforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgro…

  • CIO时代APP上线了!每天微讲座等让IT学习“兴趣随身”

    CIO时代APP上线了!每天微讲座等让IT学习“兴趣随身”

  • bigdecimal保留2位小数_java如何保留一位小数

    bigdecimal保留2位小数_java如何保留一位小数http://blog.csdn.net/yuhua3272004/article/details/3075436使用java.math.BigDecimal工具类实现java保留两位小数问题:方式一(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP):四舍五入doublef=111231.5585;BigDecimal…

  • (一)手把手教双目相机标定(超详细,附代码)[通俗易懂]

    (一)手把手教双目相机标定(超详细,附代码)[通俗易懂]使用软件:matlab2018标定过程分三步走:1.图像采集2.图像分割3.matlab工具箱标定

  • 阻止mouseover冒泡行为_onmousedown是什么意思

    阻止mouseover冒泡行为_onmousedown是什么意思一.onmouseenter、onmouseoveronmouseenter事件在鼠标指针进入到绑定事件的那个元素上时触发。该事件通常与onmouseleave(在鼠标指针离开绑定事件的那个元素上时触发)事件一同使用。onmouseenter事件类似于onmouseover事件。唯一的区别是onmouseenter事件不支持冒泡。二.实例演示onmousemov…

  • 大学生在线四史脚本

    大学生在线四史脚本中国大学生在线脚本无python环境(博主推荐)使用教程软件下载有Python环境编译环境源码分享无python环境(博主推荐)使用教程无Python环境下载可执行文件,将题库.csv与main.exe置于同一文件夹,直接运行即可.uid获取方式:关注公众号:云享科技毒瘤,在菜单栏【四史学习】–>【uid获取】–>【阅读全文】即可查看自己的uid。软件下载公众号:云享科技毒瘤长按二维码关注我们,查看历史文章即可下载声明:1.云享科技毒瘤提供的所有下载文件均在网络收集,请于

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号