1、TPS与平均响应时间是什么关系?
tps全称:TransactionsPerSecond(事务数/每秒),每秒处理的事务数
平均响应时间:事务平均响应时间(LR通常报告中的平均响应时间,单位:秒)
Q:一个收费站开了10个入口,每个路口每秒钟只能通过一辆车,有10辆车,那么每秒钟能通过几辆车?那么每辆车的响应时间是多长呢?
A:10辆车,1秒。事务的响应时间是1秒钟,tps就是10
Q:那现在有20辆车,那么每秒能进几辆车?每辆车的响应时间是多少?
A:每秒还是进去10辆车,每辆车的响应时间还是1秒
Q:那现在有20辆车,收费站的入口开了20个,那么每秒能进几辆车?每辆车响应时间是多少?
A:还是每秒能进20辆车,每秒的响应时间还是1秒,那就是说事务的平均响应时间和和tps是没有关系的。
Q:那现在收费站的入口是20个,只有10辆车,那么每秒能进去几辆?每辆车响应时间多少?
A:每秒能进10辆车(tps=10),响应时间是1秒,入口数就相当于线程池,线程池是20,却只有10辆车,说明并发数不够(10<20),这种情况下tps和平均响应时间是没有关系的。需要增加并发达到tps的峰值。
Q:那现在收费站入口20个,有100辆车?每辆车响应时间多少?
A:每秒能通过20辆车,每辆车的平均响应时间是(5+4+3+2+1)/5=3 秒 。
Q:那现在的tps是多少?
A:20个入口,100辆车要分成5次进去,第1趟1秒,第2趟2秒,第三趟3秒,第四趟4秒,第五趟5秒。每次都是进去20辆车。所以tps=(20/1+20/2+20/3+20/4+20/5)/5=9.13333
K:之前并发没有达到峰值的时候,tps=20,现在100辆车的tps变小了。响应时间和TPS在宏观上是反比关系。就是当并发超过峰值的时候,响应时间和tps是呈反比关系。当并发没有超过峰值的时候,响应时间不变,并发数增大,tps增大。20是一次的并发数量,100的并发造成了线程的等待,引起平均响应时间从1秒变成了3秒,tps也从20下降到9。tps和响应时间都是单独计算的,两者不存在计算关系。
2、TPS 和QPS的是什么关系呢?
tps,即每秒处理事务数,每个事务包括了如下3个过程:
a.用户请求服务器
b.服务器自己的内部处理(包含应用服务器、数据库服务器等)
c.服务器返回给用户
如果每秒能够完成N个这三个过程,tps就是N;
qps,如果是对一个页面请求一次,形成一个tps,但一次页面请求,可能产生多次对服务器的请求(页面上有很多html资源,比如图片等),服务器对这些请求,就可计入“Qps”之中;
但是,如今的项目基本上都是前后端分离的,性能也分为前端性能和后端性能,通常默认是后端性能,即服务端性能,也就是对服务端接口做压测
如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps
如果是对多个接口(混合场景)压测,不加事务控制器,jmeter会统计每个接口的tps,而混合场景是要测试这个场景的tps,显然这样得不到混合场景的tps,所以,要加了事物控制器,结果才是整个场景的tps。
网友评论