Jmeter之性能测试TPS解析

Jmeter之性能测试TPS解析1 获得 TPS 插件 https www cnblogs com beginner boy p 7806220 html 参见 已保存百度云盘 2 添加后 记得使用调度器 每秒 50 个并发 持续 60 秒 观察 TPS3 TPS 执行一次事务 包括请求 请求服务器 等待服务器返回等等 比如一个 TPS 事务 可能触发 3 个 QPS 请求 PS 一秒钟处理的事务数 TPS 值越大 一秒钟处理的事

1、获得TPS插件

jmeter下TPS插件的安装 – 随风迎 – 博客园  参见,已保存百度云盘

2、添加后,记得使用调度器——每秒50个并发,持续60秒,观察TPS 

Jmeter之性能测试TPS解析

3、TPS,执行一次事务(包括请求、请求服务器、等待服务器返回等等,比如一个TPS事务,可能触发3个QPS请求)

PS:一秒钟处理的事务数。TPS值越大,一秒钟处理的事务数就越多,说明处理速度越快,软件的效率就越好。

一、TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)

TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。

二、QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。

Jmeter之性能测试TPS解析

Jmeter之性能测试TPS解析

有时,Throughput也可以代表吞吐量——如图中,图1中的点在24上下浮动,图2中的Throughput23.7,虽然没有详细计算两个值对比是否一致,但如果单测一个接口时,jmeter聚合报告中的Throughput可以代表吞吐量(也可以手动计算吞吐量=请求数/时间,会发现跟聚合报告中的Throughput几乎相等)

4、吞吐量与并发数

一个接口一秒钟能承受50个并发,不代表可以有50个吞吐量;

吞吐量与系统性能息息相关;

设置长时间跑接口,比如1秒50并发,持续60秒——发现实际接口请求数1461个,时间60秒,TPS参数较稳定;

TPS大概在23左右,所以当前这个接口,系统能处理的事务在23个左右

TPS=请求数/时间

QPS/TPS/并发量/系统吞吐量的概念

 QPS: 每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。

  TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。

  并发量:系统能同时处理的请求数

  RT:响应时间,处理一次请求所需要的平均处理时间

计算关系:

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

5、jmeter限制,最多100-200个并发,可以尝试使用LR,LR可监测jvm参数

6、Vu和TPS换算 ——很有用的文章 性能测试知多少 –并发用户数与TPS之间的关系_CN_项目集管理专家(PgMP)的博客-CSDN博客_tps2000支持多少用户同时点击

    TPS是每秒事务数,但是事务是要靠虚拟用户做出来的,假如1个虚拟用户在1秒 内完成1笔事务,那么TPS明显就是1;如果某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;如果某笔业务 响应时间是1s,那么1个用户在1秒内只能完成1笔事务,要想达到1000TPS,至少需要1000个用户;因此可以说1个用户可以产生 1000TPS,1000个用户也可以产生1000TPS,无非是看响应时间快慢。

7、性能测试策略

做性能测试需要一套标准化流程及测试策略,并发用户数只是指标考虑的一个,在做负载测试的时候,一般都是按照梯度施压的方式去加用户数,而不是在没 有预估的情况下,一次加几万个用户,,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义,这就好比“有多少钱可以干多少事”一样,需要选择相关的策略。

8、总结

  • 系统的性能由TPS决定,跟并发用户数没有多大关系。在同样的TPS下,可以由不同的用户数去压(通过加思考时间设置)。
  • 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
  • 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
  • 一般情况下,大型系统(业务量大、机器多)做压力测试,5000个用户并发就够了,中小型系统做压力测试,1000个用户并发就足够了。

9、应用场景

1⃣️比如要单独测试一个用户注册接口,想知道在配置A情况下tps是多少:设置请求时间如300s(短时间一般很难压出来,可以设置5-10分钟对比看下),同样配置下(机器、带宽等),改变线程数,并发数50-100-150,以此类推,可以观察jmeter查看结果树中的Throughput,通常会得出峰值曲线,也就是在某个并发范围内,tps达到最高值,低于或高于该线程数范围,tps会下降。那么,可以得出该接口最高tps值是多少(在xx并发数情况下、配置情况下)

2⃣️可以对比不同环境配置(机器、带宽等等)或代码优化后,同样线程请求下,tps最高值对比

——打个比方,可以理解接口类似于一个安全出口,tps类似于同一时间下通过人数,线程数为通过人数;当通过人数仅有10,安全出口不拥挤,一个个慢慢走过,tps是低的;当通过人数比如100,安全出口正好可以全部通过,此时tps达到峰值;当通过人数远远大于安全出口容量,如1000,此时爆挤,每个人都想通过,安全出口本来可以出100人,但是因为拥挤只能走30人;最坏情况10000人或者更高,那么这种情况下如果是豆腐渣工程,安全出口就挤崩了(类似于高并发情况下请求无响应)。所以需要测试不同线程数、时间情况下 tps最高是多少。

该种情况下是为了得到接口真实tps(比如内部对接口性能要求等),并不是通常用户或客户理解的‘你们能承受多少并发’,实际场景中接口的用户并发数多高,需要参考 吞吐量定时器来设置,以及根据接口应用场景设计性能场景。

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

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

(0)
上一篇 2026年3月26日 下午7:03
下一篇 2026年3月26日 下午7:03


相关推荐

  • 软件实施工程师的经验之谈(适合新手,老鸟请指正)[通俗易懂]

    软件实施工程师的经验之谈(适合新手,老鸟请指正)[通俗易懂]干了三年实施,技术没学多少,人倒是变的圆滑多了问题1:实施干嘛的呢?说简单通俗点,开发就是研发生产电视机的,我们实施就是给买电视机的人去进行安装调试,试运行完了签验收单收款和后期的日常维护(当然,如果大公司有自己的售后服务团队就另当别论了)问题2:实施的薪资(我想大部分人都关注这个吧)以一线城市北上广为例,我在北京,第一份实施工作月薪4500,出差补助一天一百,报销路费和住宿费,不报销吃饭…

    2022年6月2日
    66
  • Gamma校正_显示器伽马值调多少

    Gamma校正_显示器伽马值调多少介绍伽马校正的由来,作用以及实践

    2026年3月6日
    5
  • AI大模型迈向价值兑现

    AI大模型迈向价值兑现

    2026年3月12日
    1
  • c语言图书馆管理系统课程设计报告_图书管理系统课程设计代码

    c语言图书馆管理系统课程设计报告_图书管理系统课程设计代码C语言课程设计报告第第PAGE1页《程序设计语言-C》课程设计报告题目:图书管理系统班级:学号:姓名:2016年5月12日目录程序总体功能新增功能函数调用关系主要算法流程图排序算法流程图插入算法流程图过程难点及解决方法附录:源程序一:程序总体功能本图书管理系统可以实现图书管理的基本功能,包括图书信息的录入、输出、排序、删除、查找及批量导入/导出等。图书属性信息包括书号、书名、第一作者、…

    2022年10月11日
    5
  • hibernate executeUpdate和executeNativeUpdate

    hibernate executeUpdate和executeNativeUpdateexecuteUpdate用来执行HQL的更新或者删除语句。executeNativeUpdate用来执行SQL的更新或者删除语句session.createQuery(hql)session.createSqlQuery(sql)最终都是通过ResultSetReturnImpl的executeUpdate(PreparedStatementstatement)方法实现publi…

    2022年10月20日
    8
  • C++代码算法题:(5).最长回文子串

    C++代码算法题:(5).最长回文子串题目及要求:给你一个字符串s,找到s中最长的回文子串。提示:1<=s.length<=1000s仅由数字和英文字母(大写和/或小写)组成原创代码:classSolution{public:stringlongestPalindrome(strings){intbegin=0;//每个当前子串的开头intend=0;//每个当前子串的末尾intvalue=0;//判断条件使用。条

    2022年6月10日
    32

发表回复

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

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