《【唐鹏程】 字节跳动大规模在离线混部实践.pdf》由会员分享,可在线阅读,更多相关《【唐鹏程】 字节跳动大规模在离线混部实践.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、字字节节跳跳动动大大规规模模在在离离线线混混部部实实践践唐唐鹏鹏程程火山引擎云原生架构师曾就职于容器创业公司才云科技,现就职于火山引擎云原生 PAAS 团队,有多年的 TOB 云原生落地经验主要关注多云、调度、在离线混部等基于 KUBERNETES 的能力构建唐唐鹏鹏程程在在离离线线混混部部背背景景字字节节混混部部技技术术发发展展历历程程K Ka at ta al ly ys st t:字字节节开开源源混混部部系系统统未未来来规规划划0 01 1在在离离线线混混部部背背景景字字节节跳跳动动业业务务体体系系微微服服务务推推广广搜搜服服务务机机器器学学习习与与大大数数据据存存储储服服务务主要是支撑
2、应用的业务逻辑,产品特性驱动,业务迭代效率高,单一服务链路简单,整体链路复杂,重 cpu 和 rpc 延迟为 Feed、搜索提供内容列表的后端服务,实时在线推理服务,追求极致性能。服务数量少,链路简单,服务间数据交互量大,单一服务资源消耗量大,算力要求高为推广搜离线训练、数据报表提供支撑的数据处理服务,分布式训练,流式、批式计算场景,超高数据吞吐量,对算力要求高,重内存和吞吐为应用提供数据存储服务,包括通用存储、数据库、NoSQL 等,通常为有状态应用,故障影响大同,对资源稳定性要求高字字节节跳跳动动云云原原生生历历程程现有2 20 00 0+生产集群,基础设施深度云原生化T TC CE E
3、启启动动建建设设生产集群,基础设施深度云原生化2 20 01 16 6微微服服务务架架构构完成核心业务微服务迁移,并在 TCE 之上构建服务框架、Mesh、监控告警等基础设施2 20 01 17 7“推推广广搜搜”云云原原生生把“推广搜”的物理机服务与在线服务进行全面融合,实现统一容器化调度2 20 01 19 9在在离离线线调调度度融融合合、存存储储云云原原生生融合资源管理形态,简化供应链选型;优化运维效率,开启数据库、缓存等存储系统的云原生化改造2 20 02 20 0云云原原生生联联邦邦演演进进资源多云到应用多云,实现全场景应用编排和资源管理的标准化和统一化2 20 02 21 1节点数
4、5 50 00 0,0 00 00 0+最大集群节点数上万实现大规模集群落地拥有1 10 00 0,0 00 00 0+在线微服务,敏捷化构建能力持续增强平均每日变更数高达2 20 0,0 00 00 0云原生为前线业务提供稳定性保障离线任务数1 14 40 0 MM+通过云原生混部大规模节省企业资源成本次次在在离离线线业业务务混混部部 资源利用率呈现波峰波谷,夜间的资源利用率非常低 业务倾向于申请比实际需求更多的资源以确保服务的稳定性,造成资源浪费在线实际使用在线安全阈值资资源源浪浪费费0 02 2字字节节混混部部技技术术发发展展历历程程分分时时弹弹性性混混部部 在线业务在谷时通过 HPA
5、缩容,对 pod 尽可能做 packing,将整机出让给离线业务 优优势势:一个节点不同时运行在线和离线的业务不需要考虑在离线业务间的隔离问题 存存在在的的问问题题:扩缩容,驱逐,bin-packing 等操作对业务影响比较大 整机出让,存在很多资源碎片 阈值难以配置,大部分情况偏大,资源出让效果不明显基基于于 k k8 8s s/y ya ar rn n 的的常常态态混混部部 节点上同时运行 kubelet 及 yarn NM,同时存在在线和离线业务 优优势势:两套系统实现难度中等,便于快速上量 存存在在的的问问题题:两套系统,维护成本高 节点上 agent 多,大规模下额外的资源损耗大 在
6、离线是两套系统,无法做更统一和精细的调度策略 sysprobe 通过异步、旁路的方式刷新容器 cgroup,存在很多 race 的情况基基于于 k ka at ta al ly ys st t 的的常常态态混混部部 离线业务云原生化接入 k8s,去掉节点上的 yarn NM,在离线业务完全由 k8s 承载 优优势势:通过统一的调度器来做资源调度,由 katalyst 来完成在离线 QoS 策略的执行 特特点点:QoS 抽象标准化 同步管控,核心模块支持插件化扩展 智能化资源管控策略 支持多维度的运维配置策略0 03 3K Ka at ta al ly ys st t:字字节节开开源源混混部部系
7、系统统系系统统概概览览中中心心控控制制器器 Katalyst Controllers&Webhooks Katalyst Scheduler单单机机管管控控 QoS Resource Manager(QRM)Katalyst Agent QRM Plugins Sysadvisor Resource Reporter Eviction Manager MQ Qo oS S R Re es so ou ur rc ce e MMa an na ag ge er rkubeletcontainerdrunckubeletcontainerdrunckubeletnew CRI implementa
8、tioncontainerd NRIkubeletcontainerdrunchookruncKubelet Q QR RMMcontainerdruncAdd-onsQRM-PluginsCRIOCIOCIOCIOCICRINRICRICRIPod annotationsCRIOCI原原生生管管控控路路径径旁旁路路管管控控路路径径C CR RI I 侧侧 h ho oo ok k 管管控控O OC CI I 侧侧 h ho oo ok k 管管控控K Ku ub be el le et t 侧侧 h ho oo ok k 管管控控管管控控实实现现:寻寻找找最最佳佳管管控控下下发发的的 h h
9、o oo ok k 点点位位Q Qo oS S R Re es so ou ur rc ce e MMa an na ag ge er r 借鉴 Device Manager 能力实现对资源的统一抽象和管理 Q Qo oS S R Re es so ou ur rc ce e MMa an na ag ge er r 接受 resource plugin 注册 作为 hint provider 注册到 topology manager 中 周期性根据 checkpoint 结果调用 CRI 接口更新容器 resource 信息 Q Qo oS S R Re es so ou ur rc ce
10、e P Pl lu ug gi in n 负责管理相关资源的 NUMA nodes 亲和性计算与分配 混部资源分配策略Q Qo oS S C Cl la as ss sQ Qo oS S C Cl la as ss s特特性性适适合合负负载载类类型型与与 k k8 8s s Q Qo oS S 映映射射关关系系dedicated_cores 绑定核心,不与其他任何 QoS 类型的负载共享资源 支持 numa 绑定,提供更极致的性能体验对延迟非常敏感的业务,典型的如一些广告推荐系统服务Guaranteedshared_cores 有单独的 cpuset 调度域 支持根据业务场景切分 cpuset
11、 调度域可以容忍部分 cpu 限流或性能干扰的业务,典型的如 web 微服务Guaranteed/Burstablereclaimed_cores 超售资源,资源质量相对无保障,甚至会被驱逐对延迟不敏感,更在乎吞吐的业务,典型的如离线训练,批量数据处理任务BestEffortsystem_cores 预留核心,保障系统组件稳定运行关键的系统组件Burstable QoS Class 会从多个维度影响 Pod 在运行时的服务质量保障策略,例如 cpuset 配置,驱逐先后顺序,可以申请的资源类型 etc 分为 4 个与 k8s 原生 QoS 正交的 QoS 等级 以 CPU 为主导资源命名各个
12、QoS Class 通过 Pod Annotation 声明 QoS CR Re ec cl la ai imme ed d R Re es so ou ur rc ce eapiVersion:node.katalyst.kubewharf.io/v1alpha1kind:CustomNodeResourcemetadata:name:node-1spec:.status:resourceAllocatable:katalyst.kubewharf.io/reclaimed_memory:61797511168 katalyst.kubewharf.io/reclaimed_millicpu
13、:12k resourceCapacity:katalyst.kubewharf.io/reclaimed_memory:61797511168 katalyst.kubewharf.io/reclaimed_millicpu:12k Allocatable Reclaimed=Node Capacity-Request(dedicated_cores)-Estimated Usage(shared_cores)-Reserved Estimated Usage 由 sysadvisor 计算得出推荐值,计算方式可以有多种 通过 katalyst-agent 将节点上的 Reclaimed R
14、esource 上报至 CustomNodeResource 中katalyst-资资源源隔隔离离机机制制 -C CP PU US Se et t节节点点 C CP PU US Se et t 分分配配示示意意图图 Katalyst 使用 CPUSet 作为最基础的 CPU 隔离手段,隔离在离线业务的 CPU 调度域 C CP PU US Se et t v vs s.C CP PU U S Sh ha ar re e:CPUSet 相对保守,但简单有效,可以规避很多问题 节节点点 C CP PU US Se et t 分分配配方方式式 每个 dedicated_cores pod 有独立的
15、CPUSet 所有 shared_cores pod 共享一个独立的 CPUSet 所有 reclaimed_cores pod 共享一个独立的 CPUS资资源源隔隔离离机机制制 -MMe emmo or ry y 原原生生 MMe emmo or ry y Q Qo oS S 保保障障机机制制:memory.limit_in_bytes:cgroup 级直接内存回收和 OOM 驱逐:整机 working set 达到阈值,kubelet 按照顺序驱逐 oom_score_adj:全局直接内存回收无法满足需求,触发整机 OOM 原原生生 MMe emmo or ry y Q Qo oS S 保
16、保障障机机制制存存在在一一定定局局限限性性:内存回收缺少公平性与优先级 驱逐触发时机较晚 Memcg Direct Reclaim 影响性能 k ka at ta al ly ys st t 通通过过以以下下手手段段来来优优化化 干扰检测 驱逐优化 禁止调度ref:https:/www.kernel.org/doc/gorman/html/understand/内内部部实实践践效效果果集集群群季季度度级级利利用用率率波波动动稳稳定定在在 6 60 0%-8 80 0%集集群群天天级级利利用用率率稳稳定定在在 6 60 0%-8 80 0%机机器器天天级级利利用用率率分分布布0 04 4未未来来
17、规规划划功功能能规规划划 各各类类混混部部场场景景支支持持 隔离能力增强:Intel RDT,iocost,tc cgroup v2 etc 驱逐策略增强:PSI based eviction,IO-bandwidth based eviction QoS 增强:NUMA 绑定,NUMA 独占 动动态态资资源源管管理理 资源预估算法接口定义,插件化接入各类算法 资源预估算法增强:基于 target indicator 的资源预估 异异构构资资源源管管理理能能力力 各类异构设备支持 异构设备拓扑感知支持 重重调调度度能能力力增增强强 根据负载 profiling 实现重调度,平衡集群资源使用 弹弹性性资资源源管管理理 HPA 及 VPA 能力增强相相关关信信息息K Ka at ta al ly ys st t 开开源源项项目目地地址址公公众众号号T TH HA AN NK KS S