本文共 1116 字,大约阅读时间需要 3 分钟。
计算CPU负载时使用滑动*均来降低CPU负载抖动带来的不稳定,关于滑动*均见参考资料
时间窗口机制,用滑动窗口机制来记录之前时间窗口内的QPS和RT(response time)
满足以下所有条件则拒绝该请求
当前CPU负载超过预设阈值,或者上次拒绝时间到现在不超过1秒(冷却期)。冷却期是为了不能让负载刚下来就马上增加压力导致立马又上去的来回抖动
averageFlying > max(1, QPS*minRT/1e3)
averageFlying = MovingAverage(flying)
在算MovingAverage(flying)的时候,超参beta默认取值为0.9,表示计算前十次的*均flying值
取flying值的时候,有三种做法:
我们使用的是第二种,这样可以更好的防止抖动,如图:
QPS = maxPass * bucketsPerSecond
1e3表示1000毫秒,minRT单位也是毫秒,QPS*minRT/1e3得到的就是*均每个时间点有多少并发请求
dropreq
关键字好未来技术
转载地址:http://ckdyz.baihongyu.com/