阿里混部技术最佳实践 吕奇 阿里巴巴

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.