RPS模式下,为何当前统计的TPS比设置的RPS要多?

如下图所示,压测中上限的TPS150(即设置的RPS),但压测时显示当前TPS192,高于RPS设置值150。

这是因为每个请求的响应时间RT(Response Time)是不同的,客户端统计的TPS数据,是过去1秒内客户端一共收到了多少个返回的请求事务信息。示例中表示至少42(即当前TPS -上限RPS=192-150)个请求是较早前未能及时(1秒内)返回的。

RPS
可参考以下示意图,假设RPS设置为5。
  • 假设第0秒发出的5个请求RT都是1.5秒,第1秒发出的5个请求RT都是2.3秒,则第1秒统计的TPS5,表示第0秒发出的5个请求响应结束。
  • 假设第2秒发出的5个请求中3RT1.5秒,2RT0.5秒,则第2秒统计的TPS2,表示第2秒发出的RT0.5秒的2个请求响应结束。
  • 假设第3秒发出的5个请求RT分别为0.5秒、0.8秒、1.2秒、1.5秒、2.1秒,则第3秒统计的TPS10,包括第1秒发的5RT2.3秒的请求、加上第2秒发的3RT1.5秒的请求、加上第3秒发的2RT0.5秒和0.8秒的请求。
RPS示意图