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

压测中上限的TPS为150(即设置的RPS),但压测时显示当前TPS是192,高于RPS设置值150。

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

可参考以下示意图,假设RPS设置为5。

  • 假设第0秒发出的5个请求RT都是1.5秒,第1秒发出的5个请求RT都是2.3秒,则第1秒统计的TPS为5,表示第0秒发出的5个请求响应结束。

  • 假设第2秒发出的5个请求中3个RT是1.5秒,2个RT是0.5秒,则第2秒统计的TPS为2,表示第2秒发出的RT为0.5秒的2个请求响应结束。

  • 假设第3秒发出的5个请求RT分别为0.5秒、0.8秒、1.2秒、1.5秒、2.1秒,则第3秒统计的TPS为10,包括第1秒发的5个RT为2.3秒的请求、加上第2秒发的3个RT为1.5秒的请求、加上第3秒发的2个RT为0.5秒和0.8秒的请求。

image