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
《SRE 实践:服务可靠性案例课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论