《系统吞吐量》
很多情况下,笔者经常听见许多开发人员在压力测试中经常提及吞吐量,但经过实际沟通来看,其实大部分开发人员并不能够准确的理解和定位系统吞吐量或者评估系统吞吐量。
简单来说,吞吐量指的就是系统在一个指定的时间范围能,能够处理的实际请求数量,比如系统以秒为单位,每一秒钟就近可以处理多少用户请求,这个就是吞吐量。那么吞吐量跟请求是否相关呢?吞吐量与请求保持着密不可分的关系,从严格意义上来说,请求到了服务端后,如果一个请求对CPU、内存等物理资源消耗越高,且对数据库访问操作、IO读写操作、外部系统对接访问操作、节点通信等阶段话费的时间越长,也就意味着执行一条请求的时间越长,相对的,系统的吞吐量必然越低,这个是相对的。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟请求/事务 数量;
并发数:系统同时处理的请求/事务数;
响应时间:执行一个请求的平均耗时;
那么它们之间的关系就是:
QPS(TPS)=并发数/平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。