1.
1.1 明确目标:保证直播业务在峰值时段的可用性与流畅度,减少卡顿/丢帧,控制成本。
1.2 前提数据:需要准备近12个月的峰值并发(PC+移动合计)、平均观众码率分布(低/中/高画质)、地域分布、历史丢包/回源率、现有CDN供应商能力与计费模型。
1.3 角色分配:产品/运营提供活动排期,SRE/网络负责带宽部署与扩容自动化,商务联络CDN厂商预留带宽。
2.
2.1 基本公式:主线路所需带宽(Gbps)= 峰值并发(人) × 人均码率(Mbps) / 1024 × 1.0(并发到带宽换算)。示例:峰值200万、均码率2Mbps => 2000000×2/1024≈3906Gbps≈3.91Tbps。
2.2 冗余与保守系数:根据业务SLA,加上冗余系数1.2~1.5(包括CDN回源、突发流量和BGP抖动),最终设计容量=计算容量×冗余系数。
2.3 多路径/多provider策略:主线路承担主要流量,备用线路或多CDN用于熔断与灾备,主线路预留至少15%-30%余量。
3.
3.1 按地域划分主线路:将带宽需求按省级或城市集群拆分(如华北/华东/华南/西南/海外),结合观众分布与ISP链路质量分配带宽配额。
3.2 Edge与骨干:保证每个核心PoP(POP)有足够出口带宽和多链路接入,主干链路使用BGP Anycast,并配合路由策略按权重分配流量。
3.3 回源容量评估:若使用边缘转发且有回源需求,评估Origin(转码/录制)出口带宽并留出倍数(通常1.2×峰回源)。
4.
4.1 提前沟通:在重大活动前7~14天向CDN厂商提交流量预测与带宽预约单,包含具体时间窗与增长曲线。
4.2 预热策略:分阶段预热—先在低流量时段注入小批量真实流量或回放流量验证链路,然后逐步提升至目标比例(30%→60%→100%)。
4.3 回执与SLA:获取CDN厂商的容量确认回执,明示可用主线路带宽、可调节窗口与紧急扩容响应时间。
5.
5.1 必须监控项:并发观众数、下行带宽(各PoP/链路)、丢包率、回源QPS、边缘命中率、RTT、缓冲率与平均码率。
5.2 指标采集与展示:通过Prometheus采集、Grafana面板展示,按地域与供应商拆分面板,设置1分钟粒度告警。
5.3 告警阈值示例:带宽使用率>75%触发预警,>90%触发扩容预案;丢包率>1%同时伴随播放异常触发紧急通告。
6.
6.1 自动扩容触发条件:当某PoP或主线路带宽使用持续5分钟超过阈值(如85%)且增长速率>5%/分钟,触发扩容流程。
6.2 扩容步骤(SRE手动或自动执行):
6.2.1 查询当前各CDN供应商剩余可用带宽(通过API或运维面板)。
6.2.2 若主供应商可用,调用供应商API下发扩容请求(示例伪代码:POST /api/v1/capacity/scale {pop:"gz", add_gbps:100})。
6.2.3 若主供应商无法满足,自动切换到备用厂商并修改路由权重(DNS/路由器/SDN),将部分流量熔断到备用线路,细化比例逐步上升。
6.3 扩容回滚:扩容完成后监控5~10分钟性能,若异常则立即回滚并触发人工介入。
7.
7.1 CDN扩容API示例(REST伪代码):
7.1.1 请求:POST https://cdn.vendor/api/v1/capacity/allocate
7.1.2 Body:{"pop":"shanghai","bandwidth_gbps":200,"start_time":"2026-07-01T18:00:00Z","duration_hours":6,"reason":"活动预热"}
7.1.3 响应:{"status":"accepted","ticket_id":"T20260701-001","eta_min":10}
7.2 路由调整(权重法):通过CDN控制台或SDN下发权重,示例:将主线路权重从90降至60,备用A增加至30,备用B增加至10,确保平滑过渡。
8.
8.1 准备环境:使用真实协议(RTMP/HLS/HTTP-FLV/LL-HLS)构造压力流,使用观众模拟器或云上容器并发拉流。
8.2 分阶段压测:先在小范围PoP做验证(并发增加 1k→10k→100k),每步观测边缘负载、回源和播放成功率。
8.3 验证要点:确认码率自适应、切片分发、M3U8/流切换无丢失、时延在可接受范围内并记录异常日志。
9.
9.1 使用多码率与ABR降低人均带宽:合理设置码率阶梯,优先推流低码率以降低整体流量峰值。
9.2 缓存策略与边缘转码:通过延长静态切片缓存(如非实时回放)与靠近用户的边缘转码减少主干带宽。
9.3 计费模型把控:选择按峰值计费或95百分位计费并和CDN谈判峰值豁免,避免短时突发导致高额账单。
10.
10.1 应急跑道准备:保持备用CDN合同、预留国际出口、快速切换的DNS/路由权限名单与脚本。
10.2 演练流程:每季度进行一次全链路故障切换演练,包括扩容API调用、路由权重调整、回滚演习与SLA验证。
10.3 文档与通讯:制定Runbook,包含联系人、扩容步骤、API示例、通知模板与外部沟通话术。
11.
答:结合实时监控判断,若某主PoP或主线路带宽利用率持续超过阈值(如85%)且伴随播放卡顿率、回源QPS急增或丢包增加,应立即触发扩容;同时参考增长速率(>5%/分钟)和离峰容量剩余,满足两项即可进入紧急扩容流程并通知CDN厂商。
12.
答:优先启动流量分流到备用CDN与边缘缓存(通过路由权重或DNS降低主线路占比);其次开启低码率优先策略(下发配置让客户端优先拉低码率);最后启用地域限流或次要服务降级(关掉高清回放)并在10分钟内完成回滚或再次扩容。
13.
答:常见坑包括未提前与CDN预约导致临时扩容受限、监控粒度不够错过预警、只按95百分位估算峰值导致短时突发超额;避坑建议是:1) 事件前至少7天预约并预热;2) 1分钟粒度监控并设置多级阈值;3) 多供应商+多跑道演练,以及准备自动化脚本与负责人通讯链。
