性能测试关注指标-TPS概述
一、TPS(Transaction per Second)定义
TPS是Transactions Per Second 的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户端向服务器发送请求然后服务器做出反应的过程。客户端在发送请求时开始计时, 收到服务器响应后结束计时,以此来计算使用的时间和完成的事务数。
二、TPS的作用
1. TPS反应了系统在单位时间内处理业务的能力,这个值的高低,说明了系统处理能力的高低。TPS随着时间的变化逐渐变化,TPS会收到负载的影响,也会随着负载的增加而逐渐增加,当系统进入高压力区时,TPS会有所下降,在继续加压的话,就是开始出现少量的失败事务。
2. TPS是从客户端角度审视服务器处理能力,并不是说TPS可以达到什么程度就能支持多少并发,也不是设置了多少并发就等于达到了多少TPS的量(例如一个业务100个交易,另一个业务10个交易,或者设置了100的并发线程数,但是当前单位时间内,有排队等待的虚拟用户),两者没有必然的联系。
3. TPS=脚本运行期间所有事物总数/脚本运行时长,如果有集合点策略,在脚本执行前的等待时间过程中,服务器没有处理事物,这个时候的TPS和理论中的结果会不一致。
4. 影响TPS的因素,有以下几点:服务器本身性能问题、代码处理的问题、客户端施加的压力问题(客户端本身如果出现瓶颈,TPS会上不去)、网卡(带宽)。
三、TPS与响应时间
1. TPS短时间内随着并发的升高是逐渐增大的,而响应时间应该是额定不变的值,此时,说明并发数不是太高,TPS也没有达到最大值,服务器的处理能力还没有饱和,可以尝试增加并发数,使TPS继续增高达到峰值。
例如,地铁进站口,如果有五个刷卡进站的口,每个人从刷卡到进站估计需要两秒,这是有1个乘客,2个乘客,3个乘客,需要的时间都是两秒,而进站口还有几个剩余,没有充分利用。这个时候可以适当提高乘客进站数量。
2. 如果继续增加并发,达到100,例如进站乘客数大于5,需要的时间就会增大,如果继续增加人数,会造成线程等待,平均响应时间增加,从原来的2秒增加到10秒,TPS也会降低,两者在宏观上是成反比的,但是两者的值是分别计算出来的,没有直接必要的关系。