阿里巴巴混部技术的最佳实践
极客时间编辑部
讲述:丁婵大小:1.77M时长:03:53
阿里巴巴从 2015 年开始实践混部技术,把延时要求低、计算量更大的计算任务和延时敏感高、但请求量大的在线服务混合在一起运行。这样做可以极大地提高在线服务集群的资源利用率,在今年的双 11 中,就有超过 10% 的流量是通过这样的方式支撑的,那么阿里的混部技术具体是如何实现的呢?
在日前举办的 ArchSummit 大会上,阿里巴巴高级技术专家吕奇分享了阿里混部技术的最佳实践。
对于混部技术的部署和实现原理,吕奇解释道,“在线服务的容器就像砖块,而计算任务就像沙子和水。当在线服务压力小的时候,计算任务就占住那些空隙,把空闲的资源都使用起来,而当在线服务忙的时候,计算任务便立即退出空隙,把资源还给在线服务。”
混部技术的实现首先要解决资源的抢占问题,而要解决这个问题,离不开两大核心:调度和内核。调度主要在竞争之前,通过资源画像,尽量减少资源竞争的可能性;内核是在发生资源竞争的极端情况时,优先保障高优先级任务。阿里在这两方面做了大量的优化实践。
在资源调度上,将对应的内存、CPU、网络、磁盘和网络 I/O 容量进行画像,知道它的特征和资源规格,以及不同时间对资源的真实使用情况,然后对整体规格和时间进行相关性分析,进行整体调度优化。
一方面,在任务调度到机器上之前,会提前感知机器当时的实际剩余能力,然后智能化的挑选任务,让资源在最大化利用的同时,本身的竞争降到最低。
另一方面,也通过分时复用,如日常情况下,在线任务凌晨 1-6 点为低峰,而此时离线是高峰,然后智能挑选空闲在线容器进行 offline 处理。而在白天的时候,又反过来,让资源使用达到一个最佳的平衡。
在大促情况下,比如针对双 11 这种大促场景,离线在短时间内降级,空出最大的计算资源 以供 在线应对脉冲高峰,而高峰一过,在线又反哺离线,形成互补,大大提高了集群应对压力的弹性能力,降低了整体的成本。
而在服务器的内核层面,主要将内核资源隔离,对 CPU、内存、IO 和网络等多方面进行优先级的划分,做到对相关任务的毫秒级自适性调度或限制,以保证高优先级的任务不受影响。具体如下:
在 CPU 调度隔离上,CFS 基础上增加 Task Preempt 特性,提高在线任务调度优先级。
在 CPU 缓存隔离上,通过 CAT,实现在线、离线三级缓存 (LLC) 通道隔离。
在内存隔离上,拥有 CGroup 隔离 /OOM 优先级;Bandwidth Control 减少离线配额实现带宽隔离。
在内存弹性上,在内存不增加的情况下,提高混部效果,在线闲置时离线突破 memcg limit;需要内存时,离线及时释放。
在网络 QoS 隔离上,管控打标为金牌、在线打标为银牌、离线打标为铜牌,分级保障带宽。
在资源隔离与存储计算分离两大技术难题得到突破后,经过 2 年多的试验论证、架构调整和优化,阿里的混部调度方案已走向大规模生产环境,并服务于电商核心应用和大数据计算服务 ODPS 业务。在对未来的展望上,吕奇认为,混部技术将会应用于更大规模的场景,实现更精细化的调度与隔离。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论