《开源混部系统Koordinator助力云原生应用性能提升.pdf》由会员分享,可在线阅读,更多相关《开源混部系统Koordinator助力云原生应用性能提升.pdf(39页珍藏版)》请在三个皮匠报告上搜索。
1、开源混部系统Koordinator助力云原生应用性能提升宋泽辉小红书容器资源调度负责人张佐玮阿里云云原生应用平台技术专家小红书实践经验分享Contents目录01小红书在离线混部介绍02小红书Koordinator社区共建历程03小红书混部未来展望04Koordinator架构介绍05Koordinator社区动态06近期规划小红书在离线混部介绍Colocation in XiaoHongShu01混部技术背景背景集群资源呈现稳定的潮汐现象,均值利用率较低业务独占资源池带来的资源碎片散落在各个集群的buffer,碎片资源手段资源运营:碎片资源,闲置buffer资源提效,机型优化配置技术:合池并
2、池,在离线混部,资源超卖小红书混部技术演进二次调度,跨集群调度在离线隔离能力,精细化CPU核调度,合池弹性伸缩,资源调度预留&抢占统一调度,统一资源池,资源运营统一调度常态混部分时复用闲置资源再利用闲置资源再利用背景资源管理粗放,散落在各个集群中的低效节点形成资源浪费部分基于k8s发布的转码类近线/离线场景,存在计算资源需求策略定期巡检:空闲超过10min资源归还:在线pending,二次调度器驱逐离线跨集群离线调度:virtual-kubelet下发整机腾挪分时复用场景资源池:搜推广独占池场景,夜间利用率低在线业务:搜推广在线场景,支持弹性按比例缩容离线业务:转码,搜推广算法训练(大规格),
3、近离线业务T+1时效性要求策略服务弹性:凌晨在线服务定时缩容,离线服务定时扩容资源归还:离线提前缩容退场,调度在线抢占离线兜底常态混部策略调度侧:资源视图同步,调度器感知batch可用资源视图节点侧:在离线常态化混跑,离线填“谷”,在线负载感知,驱逐避让策略内核侧:调度优先级(bvt),oom 优先级,内存回收水位,超线程干扰避免,last level cache,memory bandwidth 隔离场景资源池:大规模合池,独占-公共混部池,夜间利用率低在线业务:搜推广,社区笔记,电商等java微服务场景离线业务:转码,大数据,cv/nlp近离线算法服务,T,T+1时效性要求常态混部调度能力
4、离线调度:gang/coscheduling负载感知调度:基于CPU水位二次调度:热点驱逐,碎片整理退机统一资源视图:资源走查,模拟调度;单机管控组件压制驱逐策略:bvt压制,内存驱逐QoS保障:绑核,超线程干扰抑制等batch资源上报同步指标采集(from kernel):psi,sched info干扰检测:基于cpi,psi 基础能力画像混部管控平台常态混部离线资源视图离线可用batch资源:(节点资源动态超卖)batch.allocatable=total reserved prod.usedk8s节点可用batch资源:(自定义资源,与在线服务资源视图分割) 各自权重50%,50%运
5、行超过一周40%,30%,30%T-1周同一时刻,权重最高,默认为40%,T-1天同一时刻,前一小时 各自权重30%,30%避免在线资源波动造成的离线可用资源频繁抖动Batch可用资源计算方式:常态混部离线驱逐策略整机内存超过安全水位基于CPU满足度驱逐策略,避免离线被长时间饿死基于龙蜥内核的QosEnsure能力CPU burst:cpu throttle缓解Group Identity:调度优先级,超线程隔离OOM 优先级:内存不足,按memcg优先级OOMmemcg全局最低水位线分级:调整直接内存回收顺序memcg异步回收:提前异步回收,尽可能避免同步回收常态混部Qos等级说明Laten
6、cy-sensitive最高Qos保障等级,延迟极为敏感服务mid默认Qos保障等级,容忍部分干扰延迟batch最低Qos保障等级,延迟不敏感,资源随时可能被抢占资源特性Latency-sensitivemidbatchCPUcpu burstenableenabledisable调度优先级最高默认低绑核share(默认)share(默认)reclaimednuma强保证prefer(默认)disableL3 cache100%100%(默认)30%(默认)内存带宽100%100%(默认)30%(默认)内存OOM优先级最低默认最高内存回收水线调高默认调低Qos分级Qos等级默认语义可以被业务单
7、独配置调整(不推荐)简化Qos等级,特化需求通过annotation自定义调整k8s默认基于reqeust/limit的隐式定义与业务场景不匹配,因此没有使用k8s原生Qos语义常态混部精细化CPU核编排设计思路:稳定性与利用率之间的折中类型特性适合负载类型exclusive绑定cpuset调度域,CCD感知,numa 绑定,独占排他极为敏感的搜推广大规格延迟敏感服务share绑定cpuset调度域,CCD感知,numa(可选)绑定,share/exlusive 排他,可与none类型业务共享核容忍部分干扰的Java微服务,应用网关,web服务reclaimed无cpuset绑定,可能与非ex
8、lusive绑核模式业务共享核,核的分配完全交由内核batch类离线服务,部分对延迟无要求的计算服务案例一:CPU限流导致业务线程池异常容器限流指标业务指标异常背景由于CPU限流,业务卡顿,导致业务线程池频繁打满,业务错误率有突增解决方案在线服务全量开启cpu burst,优化效果非常明显案例二:混部池CPU干扰问题延迟敏感服务share绑核+bvt配置效果(与离线共享核混跑)背景混部池业务间干扰(在线+在线,在线+离线)严重,导致部分敏感服务受影响解法开启share绑核:1.L3 cache miss率变低;2.在线业务使用的核隔离,干扰降低;3.离线服务与延迟敏感服务共享核,依赖内核的gr
9、oup identity技术,支持离线压制与超线程隔离能力效果某在线服务,延迟下降50%+案例三:调度优先级反转问题离线严重限流优先级反转影响到在线背景离线被过度压制,占用内核锁,在线服务调度优先级高,但抢锁失败,导致在线服务延迟rt异常解决方案策略优化,调整压制策略,避免离线被过渡压制离线业务场景场景近线,离线转码场景(已容器化)Flink 批量计算,流式计算(已容器化)Spark批量计算(未容器化,on yarn)cv/nlp算法回扫场景(已容器化)BaremetalVMServerless Container InstanceKubernetes Core小红书在离线统一调度大数据YAR
10、N任务调度在线K8s容器调度大数据/AI容器调度训练场景(已容器化)YARN 与 K8s 在离线混部场景搜推广算法场景,基于spark的海量数据预处理,生成样本数据数仓场景,基于spark的SQL类场景目标离线作业的提交入口依然为Yarn保持不变基于Hadoop Yarn开源版本,原则上不对Yarn做侵入式改造兼容线上已有的混部业务场景,转码(k8s pod),算法推理训练(k8s pod),spark 任务(Yarn job)可能跑在同一资源池,同一节点单机QoS策略统一管理,并兼容YARN Task的运行时阿里云EMR混部支持方案大数据作业在线应用弹性管理应用运维部署管理资源管理监控日志集
11、群诊断EMRACK集群管理容器编排ACK 容器计算资源Yarn-RMYarn-NMHistory ServerCelebornEMR Pod(Yarn-NM)Online Pod应用层平台层资源层进程EMR ECS 计算资源容器EMR Pod(Yarn-NM)Online Pod弹性管理自动弹性伸缩Pod 优雅下线Pod 自动补偿部署管理Pod 引导脚本Pod 应用配置Pod 域名互通应用运维Yarn 管理(队列,调度)应用配置刷新组件重启监控日志Yarn 分区监控Pod 监控复用部分阿里云EMR提供的功能弹性HPAQos保障资源调度k8s coreYARN 与 K8s 混部架构设计架构调度器
12、层面,节点层面分别做资源仲裁和同步调度资源视图同步Koord-yarn-operator:支持k8s yarn调度器资源视图双向同步节点资源冲突解决copilot:NM 操作代理,提供管控接口Neptune-agent/koordlet:离线资源上报,节点离线Pod/task管理,冲突解决,驱逐,压制策略YARN 与 K8s 混部资源同步同步流程k8s-Yarn 可分配:节点离线总可用-k8s侧节点已分配Yarn-k8s 已分配:节点Yarn已分配资源账本计算K8s侧节点可用资源 节点离线总可用-节点Yarn已分配Yarn侧节点可用资源 节点离线总可用-k8s侧节点已分配集群利用率提升效果混部
13、集群均值利用率维持在45%左右,部分混部集群均值利用率可达60%以上;混部集群离线利用率维持在8-10%,整体利用率提升效果明显;通过混部方式,日均贡献核数数百万核*时,为离线节省大量的计算资源成本;节点混部效果图 混部节点承载了包含音视频转码,spark,cv/nlp 算法 在内的多种离线工作负载混合部署,在压榨机器资源,提升利用率的同时,保障离线服务的稳定性;小红书Koordinator社区共建历程02Open source of Xiaohongshu on Kooridnator小红书内部启动在离线混部2022.62022.82023.42023.8 积极与社区交流合作共建koord-
14、runtime-proxy等模块深度参与Koordinator社区主导启动Koordiantor YARN&K8s混部YARN&K8s 混部落地小红书2022.4生产可用的开源系统面向规模化场景Koordinator正式开源关注Koordinator项目架构设计和资源模型与小红书思路一致参与社区代码提交社区周会推进,共同设计方案负责koord-copilot模块混部覆盖数万台节点,提供数十万核资源离线任务驱逐率低于 1%CPU 利用率平均增长 8%10%;部分达到 45%以上小红书社区历程回顾面向开源的技术底座CRM Join Koordinator扩大技术影响力扩大技术影响力技术沙龙经验交流
15、汇聚优秀工程师的想法业界一手落地实践经验推动技术长期规划方向众多行业相互赋能众多行业相互赋能多场景、跨行业的生态圈开放、共享、协同、生态前沿技术探索增强创新能力提升工程研发能效提升工程研发能效方案合作共建高效敏捷的开发周期更高的工程质量更低的维护成本小红书混部未来展望03Vision of Colocation in Xiaohongshu未来展望高效高质资源交付服务质量保障业务场景多样化社区影响力提升资源效能提升Qos Aware调度干扰检测任务型负载支持调度器性能优化多租户场景资源争抢全面拥抱开源技术运营CPU利用率能力上限提升合池并池,serverless化Quota化资源交付Koord
16、inator架构介绍Introduction of Koordinator04Koordinator简介支持多种工作负载引擎硬件拓扑感知Koord Scheduler任务调度GPU调度负载感知QoS策略管理Koord Manager应用自动接入动态资源超卖资源画像预测真实负载感知Koord Descheduler支持资源预留集成社区插件迁移流控保障指标采集上报KoordletQoS保障策略适配多种环境容器资源隔离Node裸金属实例虚拟机实例异构资源实例Kubernetes2022 年 4 月正式开源,源自阿里巴巴内部多年容器调度、混部实践经验行业首个生产可用、面向大规模场景的开源混部系统致力于
17、提升应用服务质量,优化资源使用效率众多业界优秀工程师的贡献参与和讨论:来自阿里巴巴、爱奇艺、小红书、Intel、小米、360、得物、趣玩等公司支持构建企业级生产环境的容器编排服务Koordinator社区动态News about Koordiantor Community05面向AI、大数据的容器资源调度Resource SchedulingKubeflowKubeDLAI/Bigdata WorkloadsResource ManagementKube-queueGPU Sharing and IsolationJob SchedulingDevice topology-aware sche
18、dulingOptimization for AI,Big Data WorkloadPodHeterogeneous computing resource managementPodPodPodPodPodPodCPUFPGAVPC/RDMAOSSNPUGPUNAS/CPFS任务调度Coscheudling增强,兼容PodGroup,支持多PodGroup联合原子调度基于ElasticQuota的树形结构Quota,兼容社区语意,提升公平性硬件设备拓扑感知拓扑结构影响设备间通信效率(PCIe、NUMA)感知硬件间的拓扑关系,按照最优拓扑结构分配设备,优化应用性能GPU资源调度Pod 间共享
19、GPU 算力显存支持Binpack/Spread 分配策略,满足成本和高可用的不同诉求GPU MIG,支持静态划分和动态划分(WIP)K8s与Hadoop YARN混部面向开源生态基于开源版本Hadoop,非侵入式改造保持大数据作业提交入口为YARN不变统一优先级/QoS策略对接Koordinator的Batch优先级资源接受Koordlet的QoS策略管理CPU QoS、Memory QoS、LLC/内存带宽单机驱逐节点资源共享超卖资源即可被K8s Pod使用,也可被YARN task使用YARN task和Batch Pod在同一节点内共存支持对接阿里云产品能力ACK容器与EMR任务混部基
20、于Koordinator混部QoS能力预计将于11月在Koordinator 1.4正式发布https:/ Quota实现王加胜 from 小米 参与带外应用QoS管理,支持K8s与非容器化应用混部刘明 from 360 参与单机指标存储持久化黄金 from 趣丸科技 参与NodePodPod带外应用进程为非容器化应用预留资源(CPUSet、内存)纳管应用进程QoSKoordletlocal TSDBCollector本地TSDB持久化存储,指标保留时间更长支持更稳定的资源超卖策略(Mid Priority)ContainerdNRI ServerKoordletNRI PluginsCont
21、ainerd NRI插件集成张康 from Intel 主导QoS插件非侵入式,无缝接入Containerd架构生态灵活的可定制/可插拔的扩展插件面向多租户的树形结构Quota分组租户间资源公平性借用和抢占rootparentchildparentchildCNCF Sandox提案流程申请中https:/ milestones06近期规划 支持等价类调度,合并request相同的pod 避免filter、score等调度过程的重复计算调度器性能优化Network QoS任务型负载 网络维度容器服务质量,保障高优先级带宽 支持ingress、egress方向限速 request/limit模型,保障最低带宽需求资源干扰检测 基于底层指标、感知容器资源竞争情况 工作负载级别聚合分析,识别异常Pod QoS策略感知,消除干扰并反馈调度链路 Gang调度原子抢占,按分组整体抢占Pod 面向Hadoop YARN任务的QoS策略适配钉钉扫码(群号:33383887)加入Koordinator开源社群社区双周会:周二 19:30 GMT+8(北京时间)钉钉会议链接:https:/