可用性设计之过载保护

可用性设计-过载保护


计算机系统临近过载时的峰值吞吐作为限流的阈值来进行流量控制,达到系统保护。

  • 服务器临近过载时,主动抛弃一定量的负载,目标是自保。

  • 在系统稳定的前提下,保持系统的吞吐量。常见的做法:利特尔法则
    利特尔法则

  • CPU、内存作为信号量进行节流

  • 队列管理:队列长度、LIFO

  • 可控延迟算法:Codel
    Codel

    如何计算接近峰值时的系统吞吐?
    计算接近峰值时的系统吞吐

  • CPU:使用一个独立的线程采样,每隔 250ms 触发一次,在计算均值时,使用简单的平滑移动去除峰值的影响

  • Inflight:当前服务中正在进行请求的数量

  • Pass & RT:最近 5s,pass为每100ms 采样窗口内成功请求的数量,rt 为单个采样窗口中平均响应时间

在这里插入图片描述

  • 使用 CPU 滑动均值(CPU>80%)作为启发阈值,一旦触发进入到过载保护阶段,算法为 (pass * rt) < inflight
  • 限流效果生效后,CPU 会在临界值 80%附近抖动,如果不适用冷却时间,那么短时间的 CPU 下降就可能导致大量的请求被放行,严重时会打满 CPU
  • 在冷却时间后,重新判断阈值(CPU>80%),是否持续进入过载保护
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值