2、TPS和响应时间之间的关系

学习性能的人,一定看吐过一张图,现在让你再吐一次。如下:在这里插入图片描述

在这个图中,定义了三条曲线、三个区域、两个点以及三个状态描述。

1、三条曲线:吞吐量的曲线(紫色)、使用率 / 用户数曲线(绿色)、响应时间曲线(深蓝色)。

2、三个区域:轻负载区(Light Load)、重负载区(Heavy Load)、塌陷区(Buckle Zone)。

3、两个点:最优并发用户数(The Optimum Number of Concurrent Users)、最大并发用户数(The Maximum Number of Concurrent Users)。

4、三个状态描述:资源饱和(Resource Saturated)、吞吐下降(Throughput Falling)、用户受影响(End Users Effected)。

在很多地方,都可以看到对这张图的引用。应该说,做为一个示意图,它真的非常经典,的确描述出了一个基本的状态。但是,示意图也只能用来做示意图,在具体的项目中,我们仍然要有自己明确的判断。

我们要知道,这个图中有一些地方可能与实际存在误差。

很多时候,在重负载区中,资源饱和TPS达到最大值之间,并不是在同样的并发用户数之下的。比如说,当 CPU 资源使用率达到 100% 之后(资源饱和),随着压力的增加,队列慢慢变长,但是由于用户数增加的幅度会超过队列长度(服务器会接收访问,但是资源处理,然后就是请求超时),所以 TPS 仍然会增加,也就是说资源使用率达到饱和之后还有一段时间 TPS 才会达到上限。

大部分情况下,响应时间的曲线都不会像图中画得这样陡峭,并且也不一定是在塌陷区突然上升,更可能的是在重负载区突然上升。在重负载区这个过程中资源使用趋于上上并达到饱和,所以在此过程中,响应时间的曲线已经趋于向下。

另外,吞吐量曲线不一定会出现下降的情况,有些控制较好的系统在队列上处理得很好,会保持稳定的 TPS,然后多出来的请求都被友好拒绝。

最优并发数这个点,通常只是一种感觉,并没有绝对的数据用来证明。在生产运维的过程中,其实我们大部分人都会更为谨慎,不会定这个点为最优并发,而是更靠前一些。

最大并发数这个点,就完全没有道理了,性能都已经衰减了(TPS下降,响应时间增长),最大并发数肯定是在更前的位置呀。

这里就涉及到了一个误区,压力工具中的最大用户数或线程数和 TPS 之间的关系。在具体的项目实施中,有经验的性能测试人员,都会更关心服务端能处理的请求数即 TPS,而不是压力工具中的线程数。这张图没有考虑到锁(线程锁阻止线程并发,多核CPU也只能使用1核)或线程等配置不合理的场景,而这类场景又比较常见。也就是我们说的,TPS 上不去,资源用不上。

所以这个图默认了一个前提,只要线程能用得上,资源就会蹭蹭往上涨。这张图呢,本来只是一个示意,用以说明一些关系。但是后来在性能行业中,有很多没有完全理解此图的人将它做为很有道理的“典范”给一些人讲,从而引起了越来越多的误解。

我们简化出另一个图形,以说明更直接一点的关系。如下所示:
在这里插入图片描述
上图中蓝线表示 TPS,黄色表示响应时间。

在 TPS 增加的过程中,响应时间一开始会处在较低的状态,也就是在 A 点之前。接着响应时间开始有些增加,直到业务可以承受的时间点 B,这时 TPS 仍然有增长的空间。再接着增加压力,达到 C 点时,达到最大 TPS。我们再接着增加压力,响应时间接着增加,但 TPS 会有下降(请注意,这里并不是必然的,有些系统在队列上处理得很好,会保持稳定的 TPS,然后多出来的请求都被友好拒绝)。

最后,响应时间过长,达到了超时的程度。

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TPS响应时间是性能测试中常用的指标,它们可以用来评估系统的性能和稳定性。根据引用\[1\]中的公式,TPS(每秒事务处理量)与并发虚拟用户数和交易响应时间之间存在倒数关系。也就是说,当并发虚拟用户数增加或交易响应时间减少时,TPS会增加。 然而,根据引用\[2\]的解释,TPS响应时间并没有直接的关系。在某些情况下,增加并发虚拟用户数可能会导致线程等待,从而增加平均响应时间。这意味着,尽管并发虚拟用户数增加,但实际上系统的性能可能会下降,导致TPS减少。 引用\[3\]中的图表进一步说明了TPS响应时间之间关系。在TPS增加的过程中,响应时间一开始会保持较低的状态,然后随着压力的增加逐渐增加。在达到业务可以承受的时间点后,响应时间会继续增加,而TPS可能会达到最大值。继续增加压力可能会导致响应时间进一步增加,但TPS可能会下降。 综上所述,TPS响应时间是两个独立的指标,它们在系统性能分析中提供了不同的信息。TPS可以用来评估系统的处理能力,而响应时间可以用来评估用户体验。在性能测试中,我们需要综合考虑这两个指标,以便全面评估系统的性能和稳定性。 #### 引用[.reference_title] - *1* *2* [TPS和事务响应时间关系、计算公式(转载)](https://blog.csdn.net/liuying263/article/details/123072245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【book】TPS响应时间关系](https://blog.csdn.net/qq_41596734/article/details/121428670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值