读书笔记(SRE:Google运维解密):第21章 应对过载

本文探讨了在面临系统过载时如何优雅处理,包括使用CPU作为资源配给信号、客户端自适应节流机制、优先级分级处理请求以及避免重试爆炸。重点介绍了自适应节流算法,通过比较请求与接受数量来控制客户端请求速率,并讨论了不同过载场景下的处理策略。
摘要由CSDN通过智能技术生成
  • 避免过载,是负载均衡策略的一个重要目标。但是无论你的负载均衡策略效率有多高,随着压力不断上升,系统的某个部位总会过载。运维一个可靠系统的一个根本要求,就是能够优雅地处理过载情况。
     
  • 简单地使用CPU数量作为资源配给的主要信号就可以工作得很好,原因如下:
    (a)在有垃圾回收(GC)机制的编程环境里,内存的压力通常自然而然地变成CPU的压力(在内存受限的情况下,GC会增加)。
    (b)在其他编程环境里,其他资源一般可以通过某种比例进行配置,以便使这些资源的短缺情况非常罕见。
     
  • 应对过载:
    (a)给每个用户设置限制
    (b)客户端侧的节流机制

自适应节流的技术来实现客户端节流。具体地说,每个客户端记录过去两分钟内的以下信息:

  • 请求数量(requests):应用层代码发出的所有请求的数量总计(指运行于自适应节流系统之上的应用代码)。
  • 请求接受数量(accepts):后端任务接受的请求数量。

在常规情况下,这两个值是相等的。随着后端任务开始拒绝请求,请求接受数量开始比请求数量小了。客户端可以继续发送请求直到requests=K *accepts,一旦超过这个限制,客户端开始自行节流,新的请求会在本地直接以一定概率被拒绝(在客户端内部),概率使用公式进行计算:
公式&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值