互联网面向大数据与云计算调度挑战的阿里经济体核心调度系统干货技术博文

图.阿里巴巴全球数据中心MaxCompute上每天运行着数以千万计的作业,处理EB级别的数据。这些计算和数据分布在全球的数据中心,复杂的业务依赖关系产生了大量的跨中心依赖。相比于数据中心内的网络,跨数据中心网络(尤其是跨域的网络)是非常昂贵的,同时具有带宽小、延迟高、稳定性低的特点。比如网络延迟,数据中心内部网络的网络延迟一般在100微秒以下,而跨地域的网络延迟则高达数十毫秒,相差百倍以上。因此,如何高效地将跨中心依赖转化为数据中心内部的数据依赖,减少跨数据中心网络带宽消耗,从而降低成本、提高系统效率,对MaxCompute这样超大规模计算平台而言,具有极其重要的意义。

1.2.2以project为粒度的多集群业务排布算法随着上层业务的不断发展,业务的资源需求和数据需求也在不断变化。比如一个集群的跨中心依赖增长迅速,无法完全通过数据缓存来转化为本地读取,这就会造成大量的跨数据中心流量。因此我们需要定期对业务的排布进行分析,根据业务对计算资源、数据资源的需求情况,以及集群、机房的规划,通过业务的迁移来降低跨中心依赖以及均衡各集群压力。下图展示了某个时刻业务迁移的收益分析:左图横轴为迁移的project数量,纵轴为带宽减少比例,可以看出大约移动60个project就可以减少约30%的带宽消耗。右图统计了不同排布下(迁移0个、20个、50个project)的最优带宽消耗,横轴为冗余存储,纵轴为带宽。

1.2.3跨数据中心计算调度机制我们打破了计算资源按照数据中心进行规划的限制,理论上允许作业跑在任何一个数据中心。我们将调度粒度拆解到作业粒度,根据每个作业的数据需求、资源需求,为其找到一个最合适的数据中心。在对作业进行调度之前需要知道这个作业的输入和输出,目前我们有两种方式获得这一信息,对于周期性作业,通过对作业历史运行数据进行分析推测出作业的输入输出;对于偶发的作业,我们发现其产生较大跨域流量时,动态的将其调度到数据所在的数据中心上运行。另外,调度计算还要考虑作业对计算资源的需求,防止作业全部调度到热点数据所在的数据中心,造成任务堆积。1.3线上效果线上三种策略相辅相成,数据缓存主要解决周期类型作业、热数据的依赖;作业粒度调度主要解决临时作业、历史数据的依赖;并周期性地通过业务整体排布进行全局优化,用来降低跨中心依赖。整体来看,通过三种策略的共同作用,降低了约90%的跨地域数据依赖,通过约3%的冗余存储节省了超过80%的跨数据中心带宽消耗,将跨中心依赖转化为本地读取的比例提高至90%。下图以机房为单位展示了带宽的收益:

3.资源调度2.0-去中心化的多调度器架构2019年双十一,MaxCompute平台产生的数据量已接近EB级别,作业规模达到了千万,有几十亿的worker跑在几百万核的计算单元上,在超大规模(单集群超过万台),高并发的场景下,如何快速地给不同的计算任务分配资源,实现资源的高速流转,需要一个聪明的“大脑”,而这就是集群的资源管理与调度系统(简称资源调度系统)。资源调度系统负责连接成千上万的计算节点,将数据中心海量的异构资源抽象,并提供给上层的分布式应用,像使用一台电脑一样使用集群资源,它的核心能力包括规模、性能、稳定性、调度效果、多租户间的公平性等等。一个成熟的资源调度系统需要在以下五个方面进行权衡,做到“既要又要”,非常具有挑战性。

13年的5K项目初步证明了伏羲规模化能力,此后资源调度系统不断演进,并通过MaxCompute平台支撑了阿里集团的大数据计算资源需求,在核心调度指标上保持着对开源系统的领先性,比如1)万台规模集群,调度延时控制在了10微秒级别,worker启动延时控制在30毫秒;2)支持任意多级租户的资源动态调节能力(支持十万级别的租户);3)极致稳定,调度服务全年99.99%的可靠性,并做到服务秒级故障恢复。2.1单调度器的局限性2.1.1线上的规模与压力大数据计算的场景与需求正在快速增长(下图是过去几年MaxComputer平台计算和数据的增长趋势)。单集群早已突破万台规模,急需提供十万台规模的能力。

图.MaxCompute2015~2018线上作业情况但规模的增长将带来复杂度的极速上升,机器规模扩大一倍,资源请求并发度也会翻一番。在保持既有性能、稳定性、调度效果等核心能力不下降的前提下,可以通过对调度器持续性能优化来扩展集群规模(这也是伏羲资源调度1.0方向),但受限于单机的物理限制,这种优化总会存在天花板,因此需要从架构上优化来彻底规模和性能的可扩展性问题。2.1.2调度需求的多样性伏羲支持了各种各样的大数据计算引擎,除了离线计算(SQL、MR),还包括实时计算、图计算,以及近几年迅速发展面向人工智能领域的机器学习引擎。

图.资源调度的架构类型我们将系统中最核心的资源管理和资源调度逻辑进行了拆分解耦,使两者同时具备了多partition的可扩展能力(如下图所示),其中:资源调度器(Scheduler):负责核心的机器资源和作业资源需求匹配的调度逻辑,可以横向扩展。资源管理和仲裁服务(ResourceManagerService,简称RMS):负责机器资源和状态管理,对各个Scheduler的调度结果进行仲裁,可以横向扩展。调度协调服务(Coordinator):管理资源调度系统的配置信息,Meta信息,以及对机器资源、Scheduler、RMS的可用性和服务角色间的可见性做仲裁。不可横向扩展,但有秒级多机主备切换能力。调度信息收集监控服务(FuxiEye):统计集群中每台机的运行状态信息,给Scheduler提供调度决策支持,可以横向扩展。用户接口服务(ApiServer):为资源调度系统提供外部调用的总入口,会根据Coordinator提供的Meta信息将用户请求路由到资源调度系统具体的某一个服务上,可以横向扩展。

图.伏羲多调度器新架构2.3上线数据以下是10w规模集群/10万作业并发场景调度器核心指标(5个Scheduler、5个RMS,单RMS负责2w台机器,单Scheduler并发处理2w个作业)。通过数据可以看到,集群10w台机器的调度利用率超过了99%,关键调度指标,单Scheduler向RMScommit的slot的平均数目达到了1wslot/s。在保持原有单调度器各项核心指标稳定不变的基础上,去中心化的多调度器框架实现了机器规模和应用并发度的双向扩展,彻底解决了集群的可扩展性问题。

在此统一离线作业与准实时作业的到一套架构的基础上,这种统一的描述方式,使得探索离线作业高资源利用率,以及准实时作业的高性能之间的tradeoff成为可能:当调度单位可以自由调整,就可以实现一种全新的混合的计算模式,我们称之为Bubble执行模式。

这种混合Bubble模式,使得DAG的用户,也就是上层计算引擎的开发者(比如MaxCompute的优化器),能够结合执行计划的特点,以及引擎终端用户对资源使用和性能的敏感度,来灵活选择在执行计划中切出Bubble子图。在Bubble内部充分利用网络直连和计算节点预热等方式提升性能,没有切入Bubble的节点则依然通过传统离线作业模式运行。在统一的新模型之上,计算引擎和执行框架可以在两个极端之间,根据具体需要,选择不同的平衡点。4.1.3效果DAG2.0的动态性使得很多执行优化可以运行时决定,使得实际执行的效果更优。例如,在阿里内部的作业中,动态的conditionaljoin相比静态的执行计划,整体获得了将近3X的性能提升。

混合Bubble执行模式平衡了离线作业高资源利用率以及准实时作业的高性能,这在1TBTPCH测试集上有显著的体现,

【基于文件系统shuffle的示意图/一个20000*10000的MR作业的碎片读】分布式作业中并发度的提升往往是加速作业运行的最重要手段之一。但处理同样的数据量,并发度越高意味着上述碎片读现象越严重。通常情况下选择忍受一定的碎片IO现象而在集群规模允许的情况下提升并发度,还是更有利于作业的性能。所以碎片IO现象在线上普遍存在,磁盘也处于较高的压力水位。一个线上的例子是,某些主流集群单次读请求size为50-100KB,Diskutil指标长期维持在90%的警戒线上。这些限制了对作业规模的进一步追求。我们不禁考虑,作业并发度和磁盘效率真的不能兼得吗?4.2.2Fuxi的答案:FuxiShuffle2.0引入ShuffleService-高效管理shuffle资源为了针对性地解决上述碎片读问题及其引发的一连串负面效应,我们全新打造了基于shuffleservice的shuffle模式。Shuffleservice的最基本工作方式是,在集群每台机器部署一个shuffleagent节点,用来归集写给同一reducer的shuffle数据。如下图

5.2资源隔离分级管理单机的物理资源总是有限的,按照资源特性可以大体划分为可伸缩资源与不可伸缩资源两大类。CPU、Net、IO等属于可伸缩资源,Memory属于不可伸缩资源,不同类型的资源有不同层次的资源隔离方案。另一方面,通用集群中作业类型种类繁多,不同作业类型对资源的诉求是不同的。这里包括在线、离线两个大类的资源诉求,同时也包含了各自内部不同层次的优先级二次划分需求,十分复杂。基于此,Fuxi2.0提出了一套基于资源优先级的资源划分逻辑,在资源利用率、多层次资源保障复杂需求寻找到了解决方案。

隔离策略如下图所示

基于不同类型的资源对应不同的优先级作业

为此,我们提出了FuxiSensor的资源画像方案,架构如上图所示,同时利用SLS进行数据的收集和分析。在集群、Job作业、机器、worker等不同层次和粒度实现了资源信息的画像,实现了秒级的数据采集精度。在混部及MaxCompute的实践中,成为资源问题监控、报警、稳定性数据分析、作业异常诊断、资源监控状况的统一入口,成为混部成功的关键指标。5.4线上效果日常资源利用率由10%提升到40%以上

在线抖动小于5%

5.5单机调度小结为了解决三大挑战,通过完善的各维度优先级隔离策略,将在线提升到高优先级资源维度,我们保障了在线的服务质量稳定;通过离线内部优先级区分及各种管理策略,实现了离线质量的稳定性保障;通过细粒度资源画像信息,实现了资源使用的评估与分析,最终实现了混部在阿里的大规模推广与应用,从而大量提升了集群资源利用率,为离线计算节省了大量成本。6.展望从2009到2019年历经十年的锤炼,伏羲系统仍然在不断的演化,满足不断涌现的业务新需求,引领分布式调度技术的发展。接下来,我们会从以下几个方面继续创新:

THE END
1.强化学习ReinforcementLearning在航空航天领域的应用与挑战强化学习,Reinforcement Learning,航空航天,应用,挑战,控制,优化,决策 1. 背景介绍 航空航天领域一直以来都是科技发展的前沿阵地,其复杂性、安全性要求极高,对智能控制和决策的需求日益迫切。传统控制方法往往依赖于预先设定的规则和模型,难以应对复杂、动态变化的环境。而强化学习(Reinforcement Learning,RL)作为一种机器https://blog.csdn.net/2301_76268839/article/details/144429525
2.自然语言强化学习:一个可处理语言反馈的强化学习框架这种困境促使研究团队开始探索一个更具突破性的方向:能否设计一个框架,让 AI 系统完全通过与环境的交互来学习,而不依赖任何人类标注数据?传统强化学习为这个问题提供了灵感,但其单一数值奖励的机制难以满足复杂场景的需求。团队意识到需要一个新范式,既要继承强化学习的数学严谨性,又要具备自然语言的表达丰富性。这个https://hub.baai.ac.cn/view/41851
3.大数据上云存算分离演进思考与实践大数据阿里技术异构计算的资源负载混部:在统一存储平台提供面向异构计算的工作资源负载下的多维度查询分析服务。在线与离线计算共用计算和存储资源。解决资源波峰波谷问题,实现资源动态削峰填谷 存储降本: 存储利用率+冷热分层。支持基于分布式存储系统上的多层存储(热存储/标准存储/冷存储等)。举例来说,存储降本优化主要依赖于归档与冷https://xie.infoq.cn/article/de0971c840628b7b467a110dc
4.Volcano:在离线作业混部管理平台,实现智能资源管理和作业调度节点可观测性增强,对在离线任务资源布局动态优化,识别在线业务是否受到干扰,对干扰进行定位和控制。 集群可观测性增强,对集群任务布局动态优化,减少集群资源使用不均衡问题。 基于Volcano混合部署解决方案如下图所示: 图3 基于Volcano混合部署架构 Volcano混部调度能力 https://developer.huawei.com/consumer/cn/forum/topic/0202841185168780412
5.云计算:ChatGPT的“中枢神经”云原生离混部技术实现离散训练,在线微调 ChatGPT基于大量优质的数据语料训练,实现对话意图识别和内容生成能力的突破,这主要由于ChatGPT具有强大的智能算法学习和记忆调用基础,通过云原生离线混部和极致弹性调用机制,离线训练千亿级别的超大规模参数,形成了ChatGPT的存储记忆资源池,通过在线补充完成人类反馈强化学习(RLHF)的微调https://m.thepaper.cn/newsDetail_forward_22342649
6.在离线混部云容器引擎最佳实践调度在离线混部的核心目标是通过将在线应用和离线应用混合部署到同一个集群中,最大程度地提高集群的资源利用率,进而降低企业的运营成本。值得注意的是,在线应用和离线应用这两种不通类型的应用对服务质量的要求是不一样,在线应用往往是延时高度敏感,对资源质量要求也更高。而离线应用则对延迟要求相对宽松,有更好的重试容错https://www.ctyun.cn/document/10083472/10172926
7.阿里决战双11核心技术揭秘——混部调度助力云化战略再次突破在大家如丝般顺滑地完成一次次秒杀、抢购和付款过程的背后,是阿里巴巴技术团队经历数年时间的系统打磨,技术架构优化所做出的努力。而底层基础设施服务质量不断提升、IT 成本增加逐年递减的演进历程,都由一个名为「云化战略」的技术梦想所贯穿起来。 特别是 2017 年双 11,阿里巴巴首次混合部署了在线服务、离线计算以及https://www.leiphone.com/category/ai/HHa8Y9tPeVgB1Kt8.html
8.Kubernetes资源拓扑感知调度优化腾讯云开发者社区基于离线虚拟机的混部方案导致的节点实际可用 CPU 核心数变化 面对运行在线业务的云主机平均利用率较低的现实,为充分利用空闲资源,可将离线虚拟机和在线虚拟机混合部署,解决公司离线计算需求,提升自研上云资源平均利用率。在保证离线不干扰在线业务的情况下,腾讯星辰算力基于自研内核调度器 VMF 的支持,可以将一台机器上https://cloud.tencent.com/developer/article/2029446
9.浪潮云海首席科学家张东:面向一云多芯的系统设计云海云操作系统(InCloud OS)、Apsara Stack、EasyStack等通过单一资源池实现异构资源的统一调度和互联互通,但当前阶段主要解决“多芯”的混部问题,距离以应用为中心的跨架构运行和低成本切换尚有较大差距。为满足多芯共存条件下业务的稳定运行、平滑切换和弹性伸缩,如下科学问题和技术难题亟待解决。 https://www.cet.com.cn/itpd/itxw/3465583.shtml
10.便宜云服务器容器服务在AI智算嘲的创新与实践容器服务也在积极推动上游开源社区,在Kubernetes体系下,定义支持各类计算框架和任务类型的云原生任务标准API和生命周期。帮助用户可以在Kubernetes集群上以统一的标准和接口,管理调度各类数据计算类工作负载。 ACK扩展了Kube-scheduler framework,与Slurm调度系统打通,即支持节点池维度的分节点调度,也支持共享节点资源的混部调度http://zhanzhang.ceden.cn/?article/1644909
11.腾讯云专有云TCS容器平台企业级云容器平台云原生容器腾讯云专有云TCS容器平台,适配丰富异构IAAS设备,满足利旧需求,广泛适配兼容信创CPU/指令集/操作系统。自研高性能负载均衡;基于eBPF的高性能网络;跨集群统一服务发现;高性能Ingress;平台高可用和部署方案,运维运营能力。 立即咨询 传统企业信息化体系存在的问题 https://www.yun88.com/product/3926.html
12.华为云UCS华为云与本地IDC协同,实现弹性上云 构筑本地集群极速弹性上云,流量高峰,业务云上秒级扩容 结合Volcano以及HCE OS 2.0能力,构建本地集群在线、离线混部能力,资源利用率提升40% 在AI训练和AI推理场景下,通过GPU虚拟化技术实现GPU隔离以及资源利用率提升 云原生应用全景观测,大幅提升运维效率 https://www.huaweicloud.com/product/ucs.html
13.阿里云异构计算类云服务器介绍(GPU云服务器FPGA云服务器等神龙AI加速引擎AIACC是基于阿里云IaaS资源推出的AI加速引擎,用于优化基于AI主流计算框架搭建的模型,能显著提升深度学习场景下的训练和推理性能。配合集群极速部署工具FastGPU快速构建AI计算任务,全面提升研发效率和GPU利用率,缩短计算时间并降低AI的推理延迟。 2、神龙AI加速引擎AIACC产品优势 https://www.jianshu.com/p/d4c370053533
14.深入硬件层内核态与用户态,一文看懂火山引擎云原生操作系统近日,在2020全球分布式云大会上,火山引擎解决方案总监于鸿磊以“多云环境下的云原生操作系统”为主题,从云原生操作系统出发,分享了火山引擎敏捷高效的基础设施与技术,为企业追求业务持续增长的提供了一种创新技术思路。 激发创造,释放潜能 字节跳动具有长期沉淀、服务于数亿用户的大数据技术、人工智能等基础技术服务能力,拥https://www.volcengine.com/docs/6316/66821
15.小红书近线服务统一调度平台建设实践对于服务,我们目前将服务划分为强隔离要求在线服务、普通在线服务、近线服务、离线服务4个QoS级别。 服务QoS 资源保障模型,本质上就是按照服务的 QoS 级别,给予不同的算力保障。 对于近线服务,调度优先级为:独占资源池机器 > 在线集群闲置算力 > 混部算力 > 公有云容器实例服务。目前公有云容器实例服务,只是作为一https://blog.itpub.net/70016482/viewspace-2927565/
16.成立3年,云服务厂商火山引擎全景扫描该服务属于实时计算方面,完全基于云原生构建:脱胎于抖音内部超大规模实践,日常峰值 QPS 达100亿,稳定性提升51%;通过Serverless,实现弹性扩缩容和在离线业务混部,资源利用率提升40%;并且能够统一调度,满足流批一体等多种计算模态。通过LAS和Serverless Flink,企业可以更加高效、经济的建设自身的数据底座。https://www.eefocus.com/article/1512934.html