压力测试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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 武侠世界中的ERP乱弹[通俗易懂]

    1990年一位威力大侠(Wylie)发明了ERP,它内通百窍(企业各个业务部门),外通天地二气(客户,供应商),彻底摆脱了原先MRP,MRPII对人体的约束,从此武侠世界进入了新的篇章,各式奇功妙法,各路英雄豪杰辈出,好一派繁荣盛世!二十几年的血雨腥风过去了,江湖格局日趋稳定。天下以五派为尊,分别是SAP,Oracle,Sage,Infor,Microsoft,其它小门小派,不一一细数。作

    2022年4月7日
    37
  • 如何使用阿里云的NAS云文件存储服务「建议收藏」

    如何使用阿里云的NAS云文件存储服务「建议收藏」1.NAS云存储阿里云官方文档阿里云文件存储NAS(ApsaraFileStorage)是面向阿里云ECS实例、E-HPC和容器服务等计算节点的文件存储服务。它是一种可共享访问、弹性扩展、高可靠以及高性能的分布式文件系统。NAS基于POSIX文件接口,天然适配原生操作系统,提供共享访问,同时保证数据一致性和锁互斥。它提供了简单的可扩展文件存储以供与ECS配合使用,多个ECS实例可以同时访问NAS文件系统,并且存储容量会随着您添加和删除文件而自动弹性增长和收缩,为在多个实例或服务器上运行产生的工作负

    2022年6月16日
    27
  • curl 的用法指南「建议收藏」

    curl 的用法指南「建议收藏」curl 的用法指南

    2022年4月23日
    49
  • Python字符串中删除特定字符的方法

    Python字符串中删除特定字符的方法这篇文章主要介绍了Python字符串中删除特定字符的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧分析在Python中,字符串是不可变的。所以无法直接删除字符串之间的特定字符。所以想对字符串中字符进行操作的时候,需要将字符串转变为列表,列表是可变的,这样就可以实现对字符串中特定字符的操作。1、删除特定字符特定字符…

    2022年6月10日
    73
  • java 递归方法卡住_递归算法怎么理解

    java 递归方法卡住_递归算法怎么理解Java递归方法1.说明定义:一个方法体内调用它自己方法递归是一种隐式的循环,它会重复的执行某段代码,但这种重复执行无须循环控制递归一定要向着已知的方向递归,否则这种递归就变成了无穷递归,类似于死循环2.code举例publicclassRecursionTest{publicstaticvoidmain(String[]args){RecursionTestx=newRecursionTest();System.

    2025年12月10日
    4
  • Tidb查配置和添加配置

    Tidb查配置和添加配置

    2021年5月14日
    99

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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