理发师模型
从队列论的角度来解释和描述负载测试过程中,系统是如何处理请求的。
-
理发师模型:核心原则就是队列论,即任何事情都需要排队等待。
-
计算机从最底层就是按照队列思想来设计的,比如说CPU时间片轮转机制。 理发师模型就是形象具体的来演示系统处理请求的过程。
-
负载模型
从负载用户、TPS和响应时间的变化过程中,描述系统在不同负载情况下的表现和变化。
负载模型是一个系统的描述:负载用户数、TPS和事务响应时间三者之间的变化趋势的一个模型。是我们进行负载测试的指导性模型
按照负载用户数和TPS的相对变化,我们可以将负载模型分为三个区间:
-
轻负载区:特征
-
TPS和负载用户数成正比。
-
事务响应时间基本维持不变。
表示系统处于较轻的负载情况,通常来说,此时我们需要继续加大负载进行测试。
-
-
重负载区:以TPS的第一个拐点作为标志。特征:
-
随着负载用户增加,TPS不再增加。
-
事务响应时间开始慢慢的增加,并且增加的速度越来越快。
表示系统已经到达或者超过系统的最大处理能力的状态。 重负载区维持的时间的长短和系统的稳定性是有关。一般来说,系统越稳定,在重负载区停留的时间越长。
-
-
负载失效区:以TPS的第二个拐点作为标志。特征:
-
随着负载用户增加或者维持不变,TPS反而出现下降的趋势。
-
响应时间出现显著的增加。
-
会出现各种网络报错。
-
connect timeout 来者不拒,这样的服务器最容易出问题。
-
connect refuse 有计划的阻止,这样的服务器相对稳定。
-
connect shutdown 有计划的关闭,这样的服务器介于以上两者之间。
-
表示系统已经过载,此时继续加大负载,对于测试结果是没有任何实际的影响的。 TPS的下降一般是呈现震荡下跌的趋势,而不是坠崖式
-
负载模型的意义:
-
负载模型是用来指导我们进行负载测试的。
-
负载测试要求在三个区间都有测试场景存在。
-
系统的最大TPS就是在重负载区出现。
-
系统的最大有效负载用户数,是以负载失效区的拐点为准,通常以报错+TPS下降作为标志。