SRE 实践:服务可靠性案例课
15
15
1.0x
00:00/00:00
登录|注册

09|容量场景(二):一次让网盘雪崩的热点事件

你好,我是白园。
上节课我分享了关于解决容量问题的直接两个手段,控制流量和增加资源,除了这两个办法之外,还有哪些场景和解决方案呢?今天我就想通过 2015 年的一个案例来聊聊这个话题。
当时的情况是这样的,一部热门电视剧在网络上迅速传播,成为热点事件。由于短时间内大量用户下载该视频,最终导致百度网盘雪崩。今天我把这个故障的经验和教训分享给你,希望你能从中学到如何处理热点事件,如何处理雪崩。

网盘的架构设计

在深入探讨故障之前,我先简要介绍一下当时(2015 年)网盘的架构设计,以便你更好地理解故障发生的根本原因。
网盘架构主要分为四个层次:
客户端:主要是移动端和 PC 端两种。
产品层:负责用户信息的管理工作,包括用户注册、登录、权限分配等。
中间层:承担文件管理的职责,包括文件命名、格式处理、元数据维护等。
存储层:作为数据的最终存储地,采用了百度自建的存储系统,即百度云存储(BOS)的前身,为网盘提供强大的数据存储能力。
故障的起因是某部热门电视剧更新后,有人把它上传到网盘并进行了公开分享。随后,很多用户开始迅速下载该文件,导致存储层先出现了问题。在网盘的日常使用中,大多数文件为私有文件,通常单个文件的下载次数较少,大约在 1~2 次。然而,在这种情况下,热点文件在短时间内的下载次数激增至数百次,导致磁盘 I/O 过载,形成了局部热点现象,显著延长了文件的下载时间。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 百度网盘因热门电视剧下载导致雪崩故障,经验教训值得借鉴。 2. 故障原因主要是热点视频下载导致存储层IO过载,PHP线程处理能力有限,导致系统响应能力下降。 3. 故障恢复过程包括限流、封禁、重启中间层PHP服务、重启存储层服务、手动下载并推送至CDN等措施。 4. 实施了流量控制、引入SSD缓存、热点和灾备集群、严格的CDN推送策略等优化措施。 5. 采取了控制重试次数、隔离影响范围、实现快速恢复的核心策略。 6. 通过定义特定的错误码来控制重试行为,避免无效重试的蔓延和系统资源的浪费。 7. 进行隔离,实施了三层隔禅策略,包括文件列表、上传下载和非核心业务的隔离。 8. 适度隔离原则是进行系统隔离部署的关键原则,过度隔离可能会对后续运维、上线和资源调度带来不利影响。 9. 故障恢复过程中的限流、封禁、重启服务等措施对于避免雪崩效应和恢复服务起到了关键作用。 10. 通过故障案例总结的热点治理和雪崩治理的核心策略,对于类似问题的预防和处理提供了有益的经验和教训。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《SRE 实践:服务可靠性案例课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部