Netflix 分层媒体处理:自动容器尺寸调整 笔记

Netflix 分层媒体处理:自动容器尺寸调整

Stratum 是 Netflix 内部的平台级无服务器媒体处理平台,对于处理编码、封装等多样化的媒体工作负载至关重要。工程师将 Stratum 函数定义为 OCI 镜像,随后在 Titus 计算平台上作为批处理作业进行调度。由于需要管理数十万甚至更多的容器,Stratum 必须针对新内容格式(如播客和直播活动)实现动态扩缩容。资源请求以 YAML 格式指定,常因基础设施和应用变更而过度配置,导致效率低下和运营成本增加。为解决这一问题,Netflix 开发了 Stratum 资源调优器(Stratum Resource Tuner, SRT),这是一个旨在在生产环境中自动调整容器资源规模的自动化系统。SRT 的目标是消除人工资源配置,初期聚焦于高吞吐、对延迟要求宽松的工作负载,这类负载占资源使用量的 70% 至 80%。函数所有者可按资源类型(CPU、内存、磁盘、网络)选择启用自动资源调优。SRT 的工作流程包含五个步骤:收集资源使用指标、生成调优建议、通过实验验证建议、应用或拒绝建议,以及监控应用后的指标。建议的状态流转包括:CREATED(已创建)、EVALUATING(评估中)、APPLIED(已应用)、REJECTED(已拒绝)和 MONITORED(监控中)。例如,VideoEncoder.encodeV1 函数的过度配置内存和 CPU 已成功完成调优。指标收集机制稳健:执行级别的汇总数据存储在 Elasticsearch 中以支持短期查询,而高分辨率的原始使用指标则存储在 Iceberg 表中用于长期趋势分析。Conductor 工作流每日运行一次,利用一个月的 Iceberg 数据为所有函数和资源类型生成调优建议。该过程包括筛选高吞吐工作负载,对 CPU 和网络(基于 p99 使用率)进行激进调优,对内存和磁盘(基于 p99.9 使用率并保留安全缓冲)进行保守调优。已部署多种保障措施,例如:若资源缩减幅度过小则丢弃建议;对内存和磁盘的最大单次缩减比例限制为 15%。建议创建时处于 CREATED 状态,一旦越过此阶段即变为不可变。示例显示,CPU 推荐值从 8 降至 4,内存从 18000MB 降至 15300MB,均在单步完成,体现了 SRT 在成本优化方面的实际应用。
CdXz5zHNQW_2pPMwVXJcD.png