本篇文章3098字,读完约8分钟

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德 今年11月11日,JDOS的阿基米德接管了应用资源调度。计划每天运行一百万个容器实例,每天为离线计算提供多达3000万个核心。计算资源小时数,服务水平协议符合率达到98.3%。在业务正常运行的情况下,集群的平均资源利用率提高了三倍。仅在11.11的准备阶段,就通过资源调度节省了上亿元的服务器采购成本。本文分享了JD.com阿基米德工程的体系结构和核心技术,希望能为业界提供一些参考。 边肖:鲍永诚 今年11月11日,JDOS的阿基米德接管了应用程序资源的调度。计划每天运行一百万个容器实例,每天为离线计算提供多达3000万个核心。计算资源小时数,服务水平协议符合率达到98.3%。在业务正常运行的情况下,集群的平均资源利用率提高了三倍。仅在11.11的准备阶段,就通过资源调度节省了上亿元的服务器采购成本。本文分享了JD.com阿基米德工程的体系结构和核心技术,希望能为业界提供一些参考。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

此外,由InfoQ举办的建筑峰会全球建筑师峰会将于12月8日至11日在北京举行。会议和阿里巴巴联合策划了一个关于双11架构的特别会议。顶级技术专家被邀请为制作人,并设立了17个热门话题,包括新一代开发平台、人工智能和商业应用、架构升级和优化。目前,会议议程已经确定。欢迎讨论和交流。

日程安排困境

JDOS(京东数据中心操作系统)2.0于2016年发布。它是在库伯内特的基础上深度定制的,并且是第一个将库伯内特引入中国大规模生产环境的公司。它在2017年通过了618的测试。在内核、网络、存储、监控和镜像中心的生态建设逐步完善后,调度系统的优化也逐渐提上日程。在长期的集装箱运营过程中,团队积累了大量的监控数据,发现了许多难点。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

JD.com有很多服务器资源,但是这些资源没有被充分利用。

在大规模推进之前,每项业务主要依靠增加新机器来应对高峰瞬时流量。

应用程序量和应用程序业务系统资源的使用量之间存在巨大差距。

资源的利用呈现明显的峰谷,不同机器的资源利用率差异很大。

资源碎片造成的资源浪费是严重的。

对于上述问题,简单的调度和资源分配算法已经不能满足复杂的调度要求。阿基米德工程诞生了。阿基米德项目作为JDOS的核心调度组件,是整个数据中心的支点,负责整个JD.com数据中心的资源调度和驱逐。

应用纵向

应用程序对资源的使用有一定的规则。通常的做法是将资源使用的特征分为计算密集型、内存密集型、存储密集型等。这种简单的方法无法从CPU/内存/存储/网络的多个资源维度和时间维度描述资源的使用。我们使用强化机器学习算法,根据应用程序的历史数据提取资源使用的特征,然后对不同的应用程序进行分类,形成应用程序图。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

应用程序描述可以为调度提供基础。不同的应用根据应用描述的结果进行相似性/反相似性调度,并一起调度不同的应用容器,使它们的资源需求等于0+互补,互不影响。同时,对于一个应用中的多个容器,可以根据应用描述对容器的健康状况进行评估和预警,并且可以尽早进行容器的自动扩展或迁移,以免影响业务。此外,应用程序描述还为以后应用的资源的使用提供了指导,从而可以确保资源的使用,并防止因资源过度分配而造成的浪费。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

无服务器和延迟容限

在过去的技术架构中,大量的业务应用属于长期运行的服务,其特征是长期的服务提供。事实上,许多应用不需要长期服务。以图片转换应用为例,商家上传的商品图片需要转换成各种尺寸,水印/标识等。应该打印在图片上并上传到存储器。图片转换应用只需要在用户上传图片时提供服务,其他时候不需要占用资源;此外,应用程序对延迟不敏感,允许延迟长达数十秒。对于这个事件驱动和延迟容忍的应用程序,我们把它从长期服务推向了JDOS提供的无服务器架构。无服务器架构在将长期服务转换为离线计算任务方面发挥了巨大作用。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

无服务器的应用程序任务和离线计算任务被抽象为统一的批处理作业。当一个批处理任务提交给阿基米德时,需要提供一个任务描述,其中包括任务功能、任务类型、资源描述、任务的延迟容忍时间等。阿基米德计划执行。延迟容忍时间是指任务可以容忍的最大延迟执行时间。换句话说,任务不需要在提交后立即执行,资源可以在一段时间后执行。这为阿基米德的调度计划提供了重要的依据,使他能提前计划好管道。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

资源碎片和时间空多路复用

不同批次购买的服务器的资源比例不同,不同应用程序的资源比例也不同。基于资源自适应的调度算法很容易导致服务器上的CPU配额已经分配,但是内存仍然空几十GB或者内存分配已经完成,并且CPU仍然空几十个内核。这就是我们所说的资源碎片化。

几乎每台物理机上都会出现资源碎片。长期服务,尤其是面向用户的任务,在日常实施中会有明显的高峰和低谷。此外,不同长期服务的资源消耗也不同。因此,时间空集群中不均匀的资源利用是正常的。资源碎片分布不均匀和时间空的问题导致资源的巨大浪费。

我们希望长期服务保持稳定,并尽可能低地迁移。因此,阿基米德采用批处理任务对资源碎片的总时间等于0+的情况进行统一填充调度,以达到资源碎片充分利用和时间空资源复用的效果。阿基米德不仅可以调度当前的资源和任务,还可以综合应用批处理任务的描述和描述,提前计划未来一段时间的任务,使资源在业务正常运行的同时得到充分利用,有效防止批处理任务与长期服务资源之间的竞争。阿基米德将始终保持一定的资源缓冲,以满足突发流量的资源需求。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

二语习得

无论是长期服务还是批量任务,都将与阿基米德签订服务水平协议。阿基米德将确保服务或任务的资源使用和服务可用性。特别是对于长期服务,阿基米德将优先保证其资源的使用和服务的可用性。当批量处理任务和长期服务、长期服务和长期服务将要争夺资源时,阿基米德将根据服务级别协议的可用性和优先级对它们进行筛选和排序,并按顺序驱逐和迁移任务或服务,以确保高优先级的长期服务能够优先使用资源,必要时不迁移,不受其他任务/服务的资源竞争的影响。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

集群自治

JDOS提供集群的自动管理。阿基米德将集群从自动化转变为自主管理系统。Kube-controller在社区中提供了一个控制器的例子,但是有很多缺点。例如,控制器获取的信息太少,只能从apiserver获取节点状态,无法准确判断节点是否离线,导致误判和频繁的容器迁移。因此阿基米德将控制器扩展成一个单一的系统MAGI。MAGI有五个节点分布在数据中心的不同物理POD中。MAGI系统负责集群的自主决策,并采用投票协商系统来检查节点是否离线以及容器是否需要迁移。节点的离线移除和容器的迁移实际上只有在MAGI系统的票据返回决定之后才会触发。

JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

不仅仅是日程安排

阿基米德不仅是JDOS的调度系统,也是应用资源使用的数据分析平台。阿基米德为项目管理、业务、审计、采购等部门的相关工作提供了直接的数据支持。

机房的主要功耗用于制冷,制冷的主要目的是冷却中央处理器。阿基米德将根据应用程序配置文件和调度计划来调整服务器CPU的主频,以达到节能降耗的效果。该功能已在2个核心机房大规模实施,功耗降低了17%。

2018年,我们将进一步推进调度算法优化,准确应用图像,提高调度精度,在整合计算、提高效率、节能降耗方面开展更多实践。届时,更多的生产线调度数据和模型也将与业界共享。

2020-02-29 21:22:12 国际信息公司谷歌今年将在其美国办公室和数据中心投资100亿美元。 谷歌宣布了2020年的扩张计划,计划在11个州投资100多亿美元建设办公室和数据中心,包括加州、科罗拉多州和乔治亚州。

标题:JD.com 11.11:移动数据的支点Center-JD.com·阿基米德

地址:http://www.yunqingbao.cn/yqbxx/1001.html