阿里混部技术最佳实践 吕奇 阿里巴巴
2020-03-01 201浏览
- 1.阿里混部技术最佳实践 吕奇(花名:潇谦) 阿里巴巴高级技术专家
- 2.
- 3.
- 4.
- 5.吕奇 花名潇谦,阿里巴巴高级技术专家 2014年加入阿里巴巴,是阿里巴巴大规模混部及容器化的项目 负责人,3次参与双11大促,目前主要负责阿里巴巴规模化混部、 在线存储计算分离、资损防控体系、统一日志中心。
- 6.• 混部简介 • 混部的历程 • 混部的架构 • 调度与内核 • 未来的展望
- 7.为什么要混部 各种数据报告都显示目前数据中 心的机器利用率平均在10%左右 容灾、峰值,机器数冗余大 另一方面,大数据的普及,离线 分析作业越来越多,成本极高 如何解决?
- 8.什么是混部 在线服务! 离线计算! 实时计算! 把集群混合起来,将不同类型的任务调度到相同 的物理资源上,通过调度,资源隔离等控制手段, 保障SLO,极大降低成本,我们称这样的技术为 混部(Co-loaction)
- 9.在线离线的混部 在线优 就像是石块,且延时敏感, 先级⾼高! 利用率不高,不可重跑 离线优 就像水和沙子,且延时不 先级低! 敏感,利用率高,可重跑 低优先 当在线不忙时,离线就抢 占,反之则返还,甚至反哺 级牺牲! 优先级 是可以进行混部,并带来 互补性! 成本收益的两个前提条件
- 10.混部的使用场景 30%成本下降 日常可以提升利用率、 大幅度降低成本 10%交易流量 大促时可以通过挤占 离线的方式来抗住峰 值带来的压力
- 11.• 混部简介 • 混部的历程 • 混部的架构 • 调度与内核 • 未来的展望
- 12.混合云 业务层! 在线服务运维! 计算产品运维! 云服务运维! 32.5万笔/秒! 在线服务调度! 计算任务调度! Cloud open API! 双11每年都在创造奇迹,但是 T4 NC 保有云 在线服务与计算任务 ECS 公有云 当保有云不足时 高峰却只有1小时左右。 一方面开始使用阿里云的公有 云资源的弹性能力降低成本。另一 方面,我们也开始研究混部的相关 技术。
- 13.Google与Borg 2015年,Google发表了Borg论 文,其中就提到了在线服务与计算 任务之间的混合运行,也就是我们 说的混部技术。 Borg论文中描述了Google由于采 用了这项技术,为Google整体节省 20%-30%的机器规模 了
- 14.混部的四年历程 大规模使用 线上验证 启动研究 线下测试 2015! 2014! 200 2016! 20% 2017!
- 15.日常混部的效果 混部:40% 非混部:10% 30%
- 16.干扰性的效果 影响 5% 以内
- 17.• 混部简介 • 混部的历程 • 混部的架构 • 调度与内核 • 未来的展望
- 18.基于容器的Sigma • 兼容Kubernetes API, 和开源 社区共建 • 采用阿里Pouch容器 (兼容OCI 标准) • 通过阿里多年大规模及 双11验证
- 19.基于进程的Fuxi CLT! RPC_wrapper! FuxiMaster! Cluster! Node! Cluster! Node! Cluster! Node! Cluster! Node! Fuxi! Agent! Fuxi! Agent! Fuxi! Agent! Fuxi! Agent! APP! Master! APP! Worker! APP! Worker! APP! Master! APP! Worker! APP! Worker! APP! Worker! • 面向海量数据处理和大规模计 算类型的复杂应用 • 提供了一个数据驱动的多级流 水线并行计算框架,在表述能 力上兼容MapReduce,MapReduce-Merge,Cascading, FlumeJava 等多种编程模式。 • 高可扩展性,支持十万以上级 的并行任务调度,能根据数据 分布优化网络开销。自动检测 故障和系统热点,重试失败任 务,保证作业稳定可靠运行完 成。
- 20.混部的整体架构 Level0Controller SigmaMaster • 通过sigma和fuxi完成 在线离线的各自调度 • 通过零层相互协调资源 配比 • 通过调度和内核解决资 源竞争隔离问题 FuxiMaster Level0-Data Level0Agent FuxiAgent SigmaAgent Follow the OCI standards RunC Pouch RunV Pouch RunLXC vLinux Pouch Prod Jobs JOB JOB Non-prod Jobs
- 21.零层的协调机制 sigmaMaster! Level0 Manager! FuxiMaster! • 混部集群管理 Sigma RM! Level0 RM! Fuxi RM! • 各调度租户资源配比 • 日常压测大促策略 • 异常检测与处理 Level0Agent! sigmaAgent! 容! 器! 容! 器! 容! 器! FuixAgent! ta! sk! ta! sk! ta! sk!
- 22.• 混部简介 • 混部的历程 • 混部的架构 • 调度与内核 • 未来的展望
- 23.混部中的两大核心 调度 通过资源画像,在 竞争之前,尽量减 少资源竞争的可能 性 主动,延时高 内核 资源竞争 在发生资源竞争 的极端情况时, 优先保障高优先 级任务 被动,延时低
- 24.调度:平时的分时复用 • 对集群进行资源使 用的画像 • 在线凌晨1-6点为低 峰,离线是高峰 • 通过在线服务资源 画像智能挑选空闲 容器进行offline处 理 离线高峰可拉升 离线扩水位 在线缩水位 在线扩水位 离线缩水位 至60%以上
- 25.调度:大促时的分时复用 在线服务 计算任务 ⽇日常态! 1⼩小时完成快 速线切换! ⼤大促态! 混部机器 独占机器
- 26.调度:压测时的无损有损降级 • 5分钟内完成无损降级 • 在线服务CPUSET模式,NC平均利 用率不高 • 离线70%的任务小于3分钟 分钟级快速恢复 • 秒级的快速kill预案 5min离线降级 常 态 在 线 压 测 • 离线运行 在线线压测30min 5min离恢复 离线运行1小时 5min离线降级
- 27.调度:离线作业选取 Level0 Data! Task1! Task2! • 对作业进行资源 使用的画像 • 通过0层来获得 剩余的资源能力 • 挑选符合条件的 作业 Task4! Task3! Task4! Task5! 资源画像! 规则过滤! Task5!
- 28.调度:弹性内存 • 在线加入内存共享分组 • 基于在线的实际内存使用,动态调整离线水位 • 当在线突增时,自动降级(Kill) 离线 最小 离线 可占 buffer 共享组 • 解决离线内存快速释放问题 • 整体OOM时,优先杀离线优先级低的任务 在线 实际
- 29.调度:存储计算分离 SSD! SSD! SSD! 计算节点! 计算节点! ⼤大数据存储! 计算节点! 计算节点! 通⽤用块存储! 计算节点! 计算节点! 统一计算调度 ⽇日志中⼼心! 统一存储调度 SATA! SATA! SATA! • 存储与计算混杂在一起, 对于调度复杂度是乘的 关系 • 网络能力的提升,让远 程访问变得像本地一样 快
- 30.内核隔离:CPU • CPU抢占 • 按照CGroup分配优先级(cpu.shares) • 高优先级任务可以抢占低优先级任务 的时间片 • 规避HT(noise clean) • 避免离线任务调度到在线任务相邻的HT上 • 保证已经运行的离线任务在在线任务于相邻HT上唤醒后迁走
- 31.内核隔离:CPU L3 Cache隔离 • • CAT:BDW CPU的特性; Response Time • Response Time against different DRAM BW 内存带宽隔离 5! 10! 15! 20! • Memory Bandwidth Monitoring ; • Cfs bandwidth control 调节离线任务运行时间片长度 DRAM Write BW (GB/s) 25! 30!
- 32.内核隔离:内存 • • 内存回收隔离 • 按照CGroup分配优先级 • 增加组内回收机制,避免全局内存回收干扰在线任务 • 按优先级确定内存回收的权重,在线任务的内存被回收的更少 OOM优先级 • 整机OOM时,优先杀低优先级任务
- 33.内核隔离:网络 • • 带宽隔离 • 隔离本机带宽(TC)。 • Pouch容器间的带宽隔离 带宽共享(金、银、铜) • 在离线间可以存在共享带宽 • 进程间按照优先级可以抢占带宽
- 34.内核隔离:IO • • 文件级别的IO带宽隔离(上限) • 新增blkio的控制接口 • 限制IOPS,BPS 文件级别的保低带宽(下限) • • Metadata throttle • 允许应用超出保底带宽后使用富余的空闲带宽; 限制特定操作的metadata操作,例如一次性删除大量小文件。
- 35.• 混部简介 • 混部的历程 • 混部的架构 • 调度与内核 • 未来的展望
- 36.更大规模的使用 FPGA! 实时 计算! 规模更大 GPU! 场景更多元 混部! 千级别! 万级别!
- 37.更加精细化的调度与隔离 从集群⽔水位到单机⽔水位! 从实时判断到智能预测! 混部! 更多的优先级和维度! 完全⾃自动化的协调机制!
- 38.云上推出敏捷版本 3rd party client or PaaS Kubectl K8S API Spark Hadoop 在线服务PaaS … ACS Yarn API 离线计算PaaS K8S API Sigma Agility Console EMR EDAS 定位 资源调度 应用管理 混合云架构 准 弹性伸缩 混部 Co-location Based on Kubernetes and Yarn. 公有云 领域优势技术的输出平台 ü 兼容Kubernetes架构和标 Yarn API Sigma Agility 资源+服务+数据 编排 ü 阿里内部调度、容器、运维 ü 提供企业级容器应用管理能 力,提高企业IT效率 优势 ü 混部(Co-location) 私有云 ECS SLB NAS Bare Metal LB Pangu EIP VPC OSS VM Network HDFS ü 灵活的调度策略和算法 ü 和阿里云生态无缝整合 ü 经过双11检验
- 39.