陈杰+阿里巴巴统一调度sigma 调度和策略

QCon大会

2018/10/19 发布于 技术 分类

文字内容
1. 阿里巴巴统一调度系统SIGMA 阿里巴巴系统软件 陈杰(韩堂) 技术专家
3. ABOUT ME • 2011年加入阿里,早期负责阿里搜索引擎 统一运维平台的建设以及负责一淘搜索引擎 的开发和运维; • 2013年负责搜索在线服务调度平台hippo的 创建和建设,以及搜索资源优化的工作; • 2017年开始参与阿里统一在线服务调度平 台sigma的共建,并负责调度引擎相关的工 作; • 2018年负责sigma引擎调度能力提升的设计 和实施,以及资源优化的工作。
4. 调度系统业界的发展状态 1. 开源产品 l Google的开源调度系统:Kubernetes l 伯克利的杰作:Mesos l 其他开源产品: swarm, Yarn等 2. 闭源,基于开源的改造或者开源兼容系统: l Google的Borg l 两获百度百万大奖的调度系统:Matrix l 阿里巴巴的Fuxi,Sigma等
5. 调度系统业界的发展状态 1. 在线和离线任务混部:已知主要是Borg,Matrix 2. 资源利用率状况:Borg领先 (所有机房CPU平均利用率50%左右),Matrix(40%以上) 真正的挑战? 在实际工程中落地,实现业务稳定性,资源效率和运维效率 的提升
6. 大纲 1.  统一调度的历史演进和sigma的整体架构 2. 调度策略和算法的具体实践 3. 资源管理和调度优化 4. 展望
7. 统一调度的历史演进和sigma的整体架构 BU1 T4分组1(CPU:1%) T4分组2(CPU:20%) ….. BU2 T4分组1(CPU:0.5%) 物理机分组1 ….. 其它BU… 分组1,2,3,4… 物理机.. ….. 宿主机物理资源各BU⾃⾏彼此割裂使⽤ ⼤量各种形式的T4分组集合+众多物理分组 1. 多套调度系统 2. 资源池独立(各BU各自为王) 3. 机器成本压力大,利用率被挑战 系统软件事业部:打造具备全球竞争力、效率最优的系统软件
8. 统一调度的历史演进和sigma的整体架构 l问题: ü规模:各T4分组规模不一,绝大部分只有数百台小规模:资源碎片化。 ü调度:T4分组内小规模调度,核心应用打散受限。 ü资源分配:双11期间参差不齐: ²交易相关CPU充分售卖,无空闲CPU。 ²但众多T4分组,宿主机尚未分配容器实例。 ü资源利用率不均衡:双11零点表现: ²部分分组CPU很高 ²但相当多的分组CPU几乎完全空闲 系统软件事业部:打造具备全球竞争力、效率最优的系统软件
9. 统一调度的历史演进和sigma的整体架构 统一大公共资源池 统一大公共资源池1 其它专属资源池 专用资源池1 专用资源池2 Sigma统筹所有物理资源 统⼀资源池 l 改变:统一调度,云化架构,混部云架构 ü规模:统一大资源池模式。 ü调度:大资源池下,Sigma统一调度对核心应用的各种策略保障,稳定度过双十一。 ü资源分配:双11充分使用了所有资源,没有闲置。 ü资源利用率:资源充分均衡使用 ü为在线和离线的混部打下了基础 ü为双十一稳定性提供了资源保障 系统软件事业部:打造具备全球竞争力、效率最优的系统软件
10. Sigma架构图 1.  兼容k8s api,与社区共建 2. 采用阿里 pouchcontainer容器( 兼容oci标准)
11. 统一调度的历史演进和sigma的整体架构 • 业务架构的特点:业务多样性 • 业务场景复杂
12. 调度策略和算法的具体实践 1.  灵活可配置的策略(效率) 2. 在线策略优化和双十一建站中的排布挑战 3. 通过调度减少容器之间的干扰(稳定性) 4. 混部和双十一场景的cpu策略优化(精确的资源控制)
13. 复杂和丰富以及多变的调度策略 • 支持多样的应用场景:交易,搜索,中 间件,数据库等 • 业务团队的需求,可配置立即生效,不 需要发布代码 应用基本需求 OS 超卖/超卖比 单元 基础OS 需求规格 是否启动 容灾与打散 5:POD级 4:ASW级 3;机柜级 1:机框级 0:宿主机级 高级策略 容器HostConfig特殊需 求(如Privilege) IP隔离特殊需求 宿主机任意标签匹配 资源池匹配 网络版本、物理机机型、 物理机能力匹配等….. 应用间策略 P0M0 应用间互斥/亲和/依赖 应用互斥第一/第二原则 宿主机亲和 宿主机独占 CPU精细调度策略 CPU互斥 CPU独占 SameCore策略 CPU均衡分布 异构资源 GPU FPGA … 系统软件事业部:打造具备全球竞争力、效率最优的系统软件
14. 灵活可配置的策略中心 资源交付链路 用户发起资源需求 资源入口 Sigma策略链路 用户录入资源需求 Sigma运维录入应用规则 Sigma一层调度 Sigma ApiServer Sigma scheduler ETCD集群 资源交付 规则自动同步至ETCD 应用 元信息 规则录入和编辑UI 策略读取 写入 编辑 删除API 应用 应用 应用间 基本需求 高级策略 复杂策略 Sigma标签键值的统一管理 CPU 精细策略 Sigma策略引擎,其职责是: l Sigma标签(键值)管理标准化 : 资源交付链路的业务规则传参不再混乱。 l Sigma执行链路和策略链路解耦 :复杂的业务需求,录入规则即生效 l 业务调度规则,是混部和双11业务稳定性调度的基础。 系统软件事业部:打造具备全球竞争力、效率最优的系统软件
15. 多种约束对在线排布带来的挑战 • 默认的这种调度算法问题: 资源不足,分配不合理,依赖分配的顺序
16. Sigma在线调度策略及其优化 • 调度策略是计算资源利用效率的决定因素之一 • 调度策略需要自适应环境变化 • 手工调整缺乏方向、效率较低 请求 集群状 态 调度策 略 机器打 分 分配方 案 • 在策略空间中构造候选调度策略 • 通过模拟器获取策略效果的评估 • 由算法自动生成优化的调度策略 样本 调度 策略 评估 SwarmRL 算法 模拟器 优化 策略 验证策略 将策略更新至线上
17. cpu分配率提升 • 在线策略优化的调度效果:从60% 以上提升到90%以上 • 双十一建站的挑战: 解决方案:一表建站完成更高分 配水位并高质量的排布。 x笔交易用在线分配需要350台以 上,批量排布只需要318台。并且具 有确定性。
18. 应用的稳定性部署优化 • 解决真实应用混部场景下容器之间CPU/Mem等资源的竞争干扰 • 在调度层面采用反亲和策略防止有干扰的应用容器部署在一起,保障应用运行时SLA。 • 依赖专家经验的反亲和策略,不易维护。 • 线上这种有干扰的组合很大,人工维护不太可能。 • CPI2(CPU peformance isolation for shared compute clusters)
19. 干扰分析 • 输入: 历史观测数据如容器排布信息和cpu干扰指标 检测模型:判断哪些容器有异常;离群点检测和密度分析相结合的办法 • 输出:干扰概率的极大似然估计模型(干扰组合矩阵)
20. 在离线混部 Motivation: 多种差异化优先级的负载 提高日常的资源使用率 为双十一当天准备弹性资源 挑战: 集成更多的负载类型和调度器 通过更好的资源隔离机制和精确的资源 控制改善资源效率。
21. 在离线混部 通过sigma和fuxi完成在线离线的各自调 度 通过零层相互协调资源 通过调度和内核解决资源竞争隔离问题 基于共享状态的调度
22. 为在线应用提高cpu资源优先级 CFS:完全公平的调度,面向吞吐量设 计的,不是面向应用延时不同设计的 在线优先级高于离线任务的优先级 1) 高优先级任务总是可以抢占低优先级 任务的时间片 2) 离线任务设置很小的静态权重 (cfs.shares) 3) 规避HT(noise clean):避免离线任 务调度到在线任务相邻的HT上,保证已经 运行的离线任务在在线任务于相邻HT上 唤醒后迁走
23. 为在线应用提高cpu资源优先级 L3 Cache隔离 CAT:BDW CPU的特性 内存带宽隔离 Memory Bandwidth Monitoring Cfs bandwidth control 调节离线任务运行时间片长度
24. 延时高敏感应用cpu策略 同一个物理核 尽量在同一个socket 独占物理机
25. 双十一0点峰值应用的cpu策略 在容器cpu规格一定的情况下,尽量保证0点峰值应用的容器能够更多的使用物理cpu资源 ,减少应用容器之间对cpu资源的抢占,从而影响0点峰值应用的稳定性。
26. 资源管理和调度优化的总结
27. 展望 资源最优 大规模混部,优先级差异提升资源使用效率 混合云进一步发展,混合云深度联动,实时共享资源。 智能化调度 感知应用的SLA,对资源进行画像,降低干扰。 异构计算 适配异构计算,为异构计算做优化。 IDC感知的调度 功耗,电热等
30. Thank you !