降本增效利器:快手 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.