Knative-Serving的缩放机制

 

单个Pod支持的目标并发数,给定时间内能同时处理的请求数?

缩放的边界?最小实例数, 最大实例数

 

基于Stable window内获取的指标,结合单个pod的 目标并发数 来计算目标实例数

计算:

  比如 上一个周期内平均每个pod的负载为多少

  每实例最大并发为100, 平均为40,实例数为2, 这时就会缩容为1个

 

AutoScaler支持两种扩缩容模式:

  - Stable window 稳定窗口期模式 , 灵敏度较低,比如突然收到大量请求的情况

  -  Panic 恐慌模式, 灵敏度较高的模式, 默认为1/10的 稳定窗口期

   窗口期内收到的平均并发数 >= 2 倍的单pod目标并发数(单实例) 就会进入Panic模式

服务抖动

 

 

等待时长:

服务时长:从处理开始,到处理结束所花的时间

平均逗留时长:上两者之和

 

每个pod有自己的bucket 

autoscaler 每2秒从pod上抓去一次指标数据,将其存在pod的bucket上。在一个stable window内计算其平均值,然后评估改revision是否需要扩缩容

 

每2秒计算一次,每2秒抓取一次指标

 

假设有3个pod, 

30个数据相加,a +b +c ...  然后除以30, 得到单个pod,的平均值

把3个pod的平均值相加 a + b +c  = z  , 然后除以3; z / 3 =  avg  ; 得到上个窗口期的平均值 =平均每60秒请求数,假设为80 

 

 

 

 

 

posted @ 2022-06-19 21:57  lavida2000  阅读(75)  评论(0)    收藏  举报