降本增效利器:快手 CPU&GPU超大规模在离线混部落地实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 降本增效利器:快手 CPU&GPU 超大规模 在离线混部落地实践 快手/容器云技术中心/辛文
2.
3. 目录页 Contents 背景与趋势 1 背景与挑战 2 利用提升最佳实践CPU混部篇 3 利用率提升最佳实践GPU混部篇 4 未来规划及展望
4. 快手混部生态发展历程 2023 ~ 后续 全局资源效率 2021 ~ 2022 2019~2020 扩量与精细化 资源合池 GPU虚拟化与GPU混部 多场景统一调度 在离线混部架构搭建 AI训练与潮汐混部 全局弹性能力扩量 CPU在离线混部 隔离能力提升 服务画像及AI资源预测 混部生态启动 CPU潮汐混部 计量计费
5. 快速发展的业务:给资源供给带来了挑战 应用数量众多 IDC数目众多 类型多种多样 升级变更频繁 资源潮汐化 峰值资源短缺 在离线分离 资源交付压力 快速增长的业务与资源成本控制间的矛盾日益突出
6. CPU业务背景与趋势 离线+非实时作业 资源利用率高 实时性要求较低 全天持续需求 大小块资源较可利用 在线服务 利用率指标 资源利用率较低 时延敏感 资源需求点 “潮汐”特征明显 需要足够buffer 资源套餐固定 某在线业务三天使用率示意图 具备容错特性 允许重试 稳定性要求 时延、饱和度、错误率 重试成本高,用户侧有感 • • • • 流量波峰波谷 SLO保障冗余 用户估计误差 突发增长需求
7. GPU业务背景与趋势 服务量动态增长 卡类型多样 微服务改造、长尾增多 实时流量潮汐 实例负载及规模快速变化 GPU硬件多年持续迭代 算力需求 多样化 GPU 算力强需求 提升GPU 资源效率 IDC数量众多 平台系统损耗 故障及主机异构的调度损耗 峰值资源短缺 资源池共享 推理/训练/近线多场景混合 资源弹性需求 与 云原生化 多业务场景 GPU应用 已深刻影响各类业务(搜广推、音视频、MMU、风控等)场景 快手内部GPU在线服务及离线训练任务均完成 云原生 化迁移 单卡、多卡、多机多卡场景 资源交付压力
8. 成本问题逐步凸显 核心优化目标:CPU & GPU资源利用率提升 GPU卡规模 十万量级 GPU服务 数千量级 图:快手内部某服务GPU使用率趋势 运行效率 峰均差值 多种主流GPU卡型号 数万台GPU主机&十万量级GPU卡 在线服务(推理等)、AI训练任务及近 线服务(特征提取等)多样化场景 在线服务GPU峰均差值约30PP 训练类算力全天需求旺盛
9. 目录页 Contents 背景与趋势 1 背景与挑战 2 利用提升最佳实践CPU混部篇 3 利用率提升最佳实践GPU混部篇 4 未来规划及展望
10. 如何落地系统能力 离线服务与作业 质检、报表等 高容错应用 定时任务 审计系统 在离线容器编排 资源贡献接入 离线资源监控 MapReduce 离线作业编排 应用编排 Job编排 动态超售 服务画像 大数据引擎MR/SPark 跨集群调度 负载调度 弹性扩缩容 Operator定制 Flink 自动化运维 资源成本分帐 Spark 转码类 统一资源层(容器+存储) 容器 隔离增强 容器网络 KATA 分布式 存储 rbd/nbd kwaistore HDFS 机房带宽监测 帐单管理 集群管理层 在线容器集群 主机部署服务器纳管 基础服务混用集群 备机池及测试机 公有云主机 备机及测试机 资源审计 公司统一基础设施 业务存量物理机 容器集群物理机
11. 扩展资源类型 4种资源类型 资源类型  复用原生K8S资源类型  新增三种混部资源 Mid 特点简介 供给资源量基于服务画像及AI资源预测模型,能 够实现天级别的资源供给保障。 适用于对资源驱逐比较友好的在线业务以及一些 运行时间要求比较长的近线任务。 QOS 适配业务 LS、BE  Flink  近线任务  离线基线类服务 BE  离线批处理任务  高优音视频异步 转码任务  gpu混部任务 BE  低优音视频异步 转码任务  测试任务 更灵活的QOS等级  在线:LSE、LSR、LS Batch  混部:LS、BE Free 基于Mid资源超发后的再次超发,资源供给存在 一定波动性,但整体退避率控制在一定sla范围内。 适用于短作业或者对失败重跑有一定要求的中低 优作业。 基于单机的利用率水位,资源供给无法提供较高 保障,同时存在一定程度压缩和退避的概率。 适用于对延时不敏感,同时具备恢复重跑能力的 低优作业。
12. 隔离能力建设 • • • • 毫秒量级采集周期 独占核与共享核管理 CPU share分级 压力状态离线任务按顺退避 超过阈值自动退避 设置单机离线进程限制 设置单容器实例进程限制 • • • 毫秒量级秒采集周期 服务画像及AI模型预测 压力状态离线任务按顺退避 OOM优先级 • • • • • • • 毫秒量级采集周期 混部大框维度管控 分级按需退避 帐户级FD整体约束 容器内外帐户映射 帐户权限、配额管理 网卡流量 • • • • 整机系统负载 Pid • • • 离线帐户 内存 CPU 磁盘空间/IO • • • • 数十秒级采集周期 超阈值清理离线任务及数据 重IO接入分布式块存储 IO throttle限制 离线任务TC限速 流量上限监测 调度层优化分布 机房流量分级管控
13. 内核隔离  调度优先级  超线程隔离  多调度队列  在离线分盘  离线云盘  磁盘IO限速 CPU 内存 磁盘 网络  内存异步回收  MIN水位分级  L3 cache隔离  OOM优先级  单机TC限速  机房流量分级管控
14. 内核隔离 - CPU调度优先级 针对调度延迟优化的绝对优先级,高优任务对低优任务有绝对的优先级。调度抢占时会忽略CFS强 调的公平性:  wake up的时候,高优任务无条件抢占低优任务  pick next的时候,只要有高优任务处于就绪态,低优任务无法被pick CPU调度优先级有高中低三种级别 • 高优可以抢占低优,不可以抢占中优 • 中优可以抢占低优 调度QoS目标是通过混部在离线服务,在 提高机器利用率的同时,保证高优和延迟 敏感的在线业务不受离线业务影响。
15. 内核隔离 - CPU超线程隔离 Introduction 针对 CPU 微架构资源的 Smt-Denoise,高优任务有权独占物理核,并压制/驱逐对端的低优任务, 减少低优任务对物理核算力、L1/L2 cache等微架构干扰。 Thread TH1 TH2 TH3 TH4 Core L2 Cache L2 Cache L3 Cache Socket IMC: Memory Bandwidth high T H 1 low T H 2 CORE high T H 1 T H 2 CORE T H 1 low T H 2 CORE T H 1 T H 2 CORE
16. 内核隔离 – 内存 Introduction 当memcg的内存使用量超过阈值时,需要进行直接回收;然而,直接回收给业务的执行路径引入不可 内存异步 回收 控的长尾;memcg级的后台异步回收功能,通过将memcg内存维持在一定水线可以避免直接回收 支持给为离线作业设置单独的Min 水线,降低混部后对在线直接内存回收。当整机内存不足时,优先 Min水线 对离线进行分配抑制或者直接回收,降低高优先级memory cgroup触发直接回收的几率,优化其内存分 分级 配延迟。 当整个系统脏页数量达到限制时,会开始执行writeback并限制写入速度;低优任务可能会产生过多脏 脏页限制 页达到系统阈值,导致高优任务的脏页被过早flush,并被限制速度。该特性,能限制离线容器的脏页 数。 L3 cache 基于intel的RDT技术,限制离线作业的LLC占用量,降低离线和在线共socket干扰 隔离
17. 资源抽取率提升实践  整机利用率提升 20%+  资源混部供给 精细化管理/内核隔离能力 通过对各类混部资源精细化管理,同时 借助内核隔离能力,混部深水区探索 百万核量级 服务画像 /干扰检测 YARN on K8S 自研Yarn on k8s 机构,实 现离线MR/Spark任务混部 隔离能力 增强 资源画像及预测 基于机器学习的资源预测模 型,为离线任务提供稳定资源 常态/潮汐 混部模式 多QOS等级 适配多业务qos等级需求,实现多 场景服务混合部署
18. 目录页 Contents 背景与趋势 1 背景与挑战 2 利用提升最佳实践CPU混部篇 3 利用率提升最佳实践GPU混部篇 4 未来规划及展望
19. 为什么需要虚拟化与混部类技术 任务颗粒度 请求优先级 VGPU Prioritized-QoS 大量单实例无法用满GPU资源 硬件算力持续增强形成浪费 在线容量冗余,峰值高而日均利用不足 离线训练成本高昂,近线类需求旺盛 GPU算力 显存 编码器 渲染器 高优抢占 分时复用 削峰填谷 消除冗余 提升利用率优化成本 高优保障在线峰值流量 保障实时在线需求 离线训练+近线任务压缩算力成本
20. 如何落地系统能力 业务场景 电商 推荐 广告 搜索 … 音视频 Services 框架平台 在线推理 音视频增强 Framework & Platform 硬件基础设施 Infrastructure 直播 API劫持 高优QoS抢占 媒体处理 风控 离线AI训练 特征提取等近线任务 机器学习平台 服务容器部署平台 VGPU 虚拟GPU资源 定义与调度 特效处理 混部GPU 离线训练与近线任务 在线业务场景 GPU算力隔离 显存隔离限制 显存水位预测 算力请求优先级 离线时间片兜底 显存分配识别 编解码器拦截 显存实时避让 离线内存监测 离线CPU压制 GPU卡 CPU 内存 网络 存储
21. 什么是GPU虚拟化 路径 允许 多容器 实例在资源 隔离 前提下 共享 GPU卡 GPU 显存 方式 VGPU实例 :CPU+内存+算力占比+显存占比+器件选配 渲染器 收益 业务:用量 减少 成本 降低 算力单元 算力单元 编解码器 平台:部署 密度 增加 利用率 提升 N分之一 算力/显存 编解码器 可选项 GPU算力 GPU 显存 单实例独占 GPU算力 GPU显存 多实例共享
22. GPU虚拟化底层技术选型 Nvidia MPS 内核层劫持 多进程共享上下文,吞吐指标更优 内核层拦截驱动API隔离显存/算力 缺乏故障强隔离,容器间异常会传导 细粒度的显存和算力调度策略 不支持显存硬隔离 无需替换CUDA库上层应用无感 CUDA层劫持(vCUDA) Nvidia MIG CUDA层拦截API隔离显存/算力 硬件物理切分方式,适用A100、A30等卡型 依赖容器镜像替换CUDA库 不支持动态划分 CUDA发新版需要迭代适配 依赖CUDA11及以上高版本
23. 快手GPU虚拟化方案 技术路线:内核态劫持  算力隔离:基于内核态的时间片轮转调度,多容器时分复用GPU计算器件  显存隔离:基于 内核态劫持 显存申请、回收等接口,控制容器使用显存配额 共享GPU 的多容器 占用GPU 出让GPU 多容器实例按时间片轮转切换 时间片分配周期 Period Pod1 Pod2 VGPU按时间片调度示意图 时间轴t
24. 性能压测数据 聚合QPS对比 25.000 20.000 原生GPU整卡 快手虚拟化单卡双实例  有效吞吐介于原生整卡与MPS抢占模式间 MPS方案单卡双实例  具备故障强隔离能力,显著优于MPS方案 15.000 10.000 P99延迟对比 35.00 原生GPU整卡模式 30.00 5.000 快手GPU虚拟化单卡两实例 MPS方案单卡两实例 25.00 0.000 1 8 16 BatchSize 32 64 20.00 15.00  时间片轮转引入极端场景P99延迟放大 10.00 5.00  适用具备一定延迟容忍的业务场景 0.00 1 8 16 BatchSize 32 64
25. 什么是GPU混部? 允许 在线和离近线容器实例在 优先级保障 前提下 共享 同一块GPU卡 在线服务有GPU计算请求时立刻获取算力执行,离线服务的请求被压制 算力抢占 在线请求实时抢占 立即执行 执行结束 在线实例A 请求resume 请求suspend 离线实列B 请求resume 请求suspend 离线实例C 时间轴t 显存避让 当剩余GPU显存低于安全阈值时,离线服务实例会被立即驱逐以释放显存供给在线服务进程 整卡显存 缓冲阈值 空闲显存 离线已用 在线已用显 显存 存 离线进程可用显存 离线实例 6 重调度后在 新主机拉起 1 申请显存 kGPU驱动 2 实时检测显存余量低于阈值 则生成通知事件 3 主动驱动低优离线实例 单机管理组件 5 阻止低优实例原地拉起 4 感知显存实时可申请量 DevicePlugin
26. KGPU驱动-内核模块 Kgpu Device Wrapper  虚拟设备透传 CUDA APP CUDA APP /dev/nvidia0 /dev/nvidia0  抢占调度  权重隔离 核心功能因素  离在线混部 CUDA APP … /dev/nvidia0 KGPU Device Wrapper  业务透明无感切换 GPU算力调度器 容器N 容器2 容器1 容器1 离在线混部 容器2 算力调度器 显存隔离 … 容器N 显存避让 Doorbell拦截 CUDA库逆向 水位预警 高优QOS抢占 IOCTL透明劫持 实时退避 Busy检测判断 显存分配识别 使用预测 驱动二进制解析  显存隔离 原生Driver  显存避让 硬件GPU卡
27. GPU混部利用率提升 GPU混部提升利用率示例 仅在线服务运行的GPU利用率趋势 在线与离近线复用资源下的GPU利用率趋势
28. 利用率提升效果 GPU日均利用率趋势 稳定性保障  算力,显存,故障隔离能力  实时量化干扰指标 业务成本显著下降  对接服务成本优化超50%  数千卡近线类算力稳态供给 Jan Feb Mar Apr May June July Aug
29. 潮汐混部业务背景 GPU整机维度分时复用 AI训练计算量大 利用率优化痛点 在线服务强保障 • 多机多卡高算力需求 • 训练过程需要稳态运行 • 延时极度敏感 • 多角色Gang调度 • 内存+IO+网络等多瓶 颈 • 资源配额实时协调 • 性能波动关乎收入 • 任务非实时可推迟运行 • 潮汐特征明显
30. 潮汐混部的周期切换 实时抢占 推理稳态运行 07:30 ~ 08:30 早高峰在线流量启动期 在线服务逐步扩容增加容量,抢占逻辑最高优 保障在线服务资源供给 08:30 ~ 22:30 在线业务流量持续高位 抢占 稳态 干扰观测跟踪 + 调度策略定制 流量预测+弹性扩量+优先级抢占 训练任务运行 23:30 ~ 07:30 凌晨在线流量持续低谷 提升训练任务错峰规模化运行稳定性,尽力减 少运行失败导致的无效损耗 调度实时感知算力分布 保障在线推理场景持续稳定运行,冗余资源支 持小微低优任务运行 稳态 转换 在离资源转换 22:30 ~ 23:30 晚高峰在线流量消退期 在线按容量预测缩容,尽力空出整机 调度策略定制+ 重调度干预
31. 离线训练运行保障 08:30 ~ 22:30 22:30~23:30 23:30~07:30 07:30~08:30 离线训练任务运行规模趋势 特点 策略 离线GPU资源持续压制状态 空闲整机存在不确定性 低配短时训练任务排队提交 离线GPU资源逐步增多 空闲整机规模快速增加 训练任务队列逐步迁移扩量 离线GPU资源规模趋势于稳定态 空闲整机确定性显著增强 高配长任务放量启动运行 离线GPU资源被实时抢占 空闲整机规模快速减少 任务队列暂停高优提交 装箱优先策略保持整机空闲预留 干预缩容实例尽力空出整机 调度器感知任务优先级+运行时长 训练任务保存结果逐步退出 任务失败自动重试提升成功率 二次调度主动腾挪提升装箱率 压制训练任务因资源导致的失败率 切换适量低配短时训练任务
32. 资源抽取率提升  GPU利用率提升 >10% GPU机器分时复用  GPU卡供给 机器属性离在线切换,实现GPU机器 分时复用 万卡量级 GPU分时复用 重调度资源规整 VGPU 虚拟化 多在线实例用GPU卡,增 加单机部署密度 GPU常态混部 /KGPU模型 在线共享GPU卡 /GPU虚拟化 KGPU 常态混部 多优先级服务共享GPU卡, 低优先级服务允许被抢占
33. 目录页 Contents 背景与趋势 1 背景与挑战 2 利用提升最佳实践CPU混部篇 3 利用率提升最佳实践GPU混部篇 4 未来规划及展望
34. 利用率深水区  服务画像/模型预测优化  内核隔离能力增强  精细管控:干扰识别与避 让 全局资源效率提升  资源合池  多场景统一调度
35.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-18 02:52
浙ICP备14020137号-1 $Map of visitor$