
深入探索百度离线混部技术的革新实践
面对百度云原生环境中服务器资源利用率低、TCO上升的问题,百度研发的离线混部技术成为破解之道。这个创新技术将在线业务(如搜索,对延迟敏感)与离线业务(大数据处理,非实时需求)巧妙融合,实现资源的高效互补和优化调度。据统计,通过混部技术,百度的混部集群已处理数十万台服务器,成功提升了CPU利用率超过40%,节省出数十亿的资源成本。
离线混部的奥秘
在线业务过度预留资源,导致离线资源利用率低下。百度的离线混部技术通过将离线作业部署在在线资源上,实现了低利用率的突破。基于Kubernetes(K8s)生态,百度进行了无缝改造,零侵入K8s架构,实现了资源的复用,避免了BestEffort Pod带来的资源浪费。
动态资源视图的引入,为K8s分配问题提供了解决方案,区分了在线和离线资源的视角,让离线任务能够复用在线闲置的资源。通过设定资源分配的优先级公式,混部调度器扩展了K8s原有的模型,包括CPU绑定、NUMA调度等,确保了在线服务的SLA和离线任务的执行质量。
优化与定制化
对于Linux内核调度器的局限,百度开发了离线专用的调度器,专门针对离线任务设计,确保在线任务的CPU资源得到保障。在内存管理上,引入了背景回收机制,按QoS划分回收优先级,避免内存不足影响在线业务。在网络层面,定制化策略如容器级别的带宽限制和流量打标,以及eBPF技术,为高敏感业务提供了用户态的隔离,支持无差别混部。
在资源管理上,离线任务通过集群、池和节点级别的资源限制,确保了执行效率。此外,百度还在持续优化中,未来计划扩大混部规模,引入内核可编程技术如eBPF,优化资源监控和隔离,支持异构资源如GPU,以及容器与虚拟机的融合,打破高密度瓶颈。
最后,CCE(百度容器引擎)作为百度云的重要组成部分,提供了一站式容器管理服务,包括运维和发布,有力支持了离线混部场景。想要了解更多关于百度云原生的离线混部技术和创新,别忘了关注我们的微信公众号【百度云原生】。
