1、概念
我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大。一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联,单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐
能力越低,反之越高。这个问题从业务上来讲,可以理解为应用系统每秒钟最大能接受的用户访问量或者每秒钟最大能处理的请求数。系统吞吐量的几个重要参数:QPS(TPS)、并发数、响应时间。
QPS: 每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。
TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。
并发量:系统能同时处理的请求/事务数。
RT:响应时间,处理一次请求所需要的平均处理时间
2、计算关系
QPS = 并发量 / 平均响应时间
并发量 = QPS * 平均响应时间
3、补充
系统吞吐量:通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下
文切换、内存等等其它消耗导致系统性能下降。
系统响应时间:我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。 而系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时
间; 关键路径是有CPU运算、IO、外部系统响应等因素组成。