首页> 中国专利> 通过提高集群多样性实现的分布式资源管理

通过提高集群多样性实现的分布式资源管理

摘要

公开了一种分布式资源管理方法,通过优先考虑低级硬件资源的多样性来保证分布式计算系统中的公平性,所述方法包括:确定应用程序对相应硬件资源的使用情况,以生成使用量度,并将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性并提高在所述集群中运行的应用程序对所述硬件资源的利用率。所述硬件资源的所述使用情况的多样性是根据在所述集群中运行的所述相应应用程序的相应使用量度确定的。所述集群中的所述硬件资源的所述使用情况的多样性通过以下方式优化:将所述应用程序分配给硬件资源的多样化池,其中,所述硬件资源的多样化池用于在被分配到硬件资源的所述多样化池的应用程序访问所述多样化池中的所述硬件资源时最大限度地减少干扰;并将来自不同多样化池的应用程序分配给所述硬件资源集群。

著录项

  • 公开/公告号CN113168344A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201980076574.8

  • 申请日2019-06-14

  • 分类号G06F9/50(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 11:55:48

说明书

相关申请案交叉申请

本申请要求于2018年11月20日提交的、申请名称为“通过提高集群多样性实现分布式资源管理”的美国临时申请第62/769,596号的优先权和权益,其申请以引用的方式并入本文中。

技术领域

本申请涉及并行和分布式计算,尤其涉及通过识别和提高应用程序使用的低级资源的多样性,在不影响数据中心和分布式资源集群中的应用程序性能的情况下改进分布式资源集群中的资源管理。

背景技术

资源管理(resource management,RM)是一种将可用性有限的资源映射到其用户和应用程序框架的技术。在云端,RM是指在大型集群或数据中心对计算、网络和存储资源的管理。数据中心的盈利直接取决于单个计算节点的利用率。然而,大多数数据中心和大型的硬件组件集群的利用率非常低(小于50%),并且通常以其处理能力的一小部分运行。托管来自同一租户或不同租户的多个应用程序的数据中心和云端通常会面临资源利用率低的问题,这增加了能源成本且降低了利润率。低资源利用率通常是以下情况的副作用:对应用程序进行隔离以防止由其它共同运行应用程序导致的或是由于对应用程序本身及其性能需求缺乏了解而导致的性能降低。

提出了不同的资源管理系统来解决这些资源管理问题。一些RM系统专门用于特定框架处理不同的作业或用户请求(调度),而其它RM系统则尝试处理多个经常调用的框架。无论哪种情况,RM系统通常都会力图通过被管理的资源来优化系统的功能和性能。功能管理涉及在粗粒度级别执行的资源计费。这种管理很少针对基础硬件和应用程序的低效。类似地,性能管理通常涉及做出资源分配决策的系统,而不是基础框架。此外,现有技术中的RM系统侧重于CPU/内存访问,并不通过对应用程序进行分配来使机器或硬件集群中的低级别资源的使用多样性最大化,这是因为RM系统通常不知道应用程序对硬件的使用情况的特征。因此,RM系统通常会根据高层的CPU和内存调度将应用程序分配给资源,而并不优化对其它系统资源的使用效率。

应用程序的性能主要取决于对诸如管线、高速缓存、总线、内存带宽等多个硬件模块的有效使用,而因为所述硬件模块是由使用给定机器的所有应用程序共享的,所以不会将所述硬件模块直接分配给不同的应用程序。因此,未能优化对低级硬件资源的使用效率是有问题的。不同的应用程序依赖于使用不同的硬件模块来最大限度地减少干扰,以获得良好的性能。但是,通过严格地对应用程序进行分配以最大限度地减少对硬件资源访问的干扰,无法优化对底层硬件资源的使用。

发明内容

本文描述了各种示例,以简化形式介绍概念的选择,这些概念将在下面的实施例中进一步描述。发明内容并不旨在确定所要求保护的标的物的关键或基本特征,也不旨在用于限制所要求保护的标的物的范围。

希望开发一种分布式资源管理系统,其通过确定高速缓存一致性、内存带宽、多级高速缓存性能、处理器总线性能、处理器管线性能、高速缓存带宽、高速缓存命中率和非一致性内存访问延迟中的至少一个,以及对应用程序进行分配,将应用程序打包在同一个硬件组件集群中,其中,所述应用程序在对低级资源的需求方面具有不同的特征,以增加对这些资源的需求的多样性。通过本文描述的系统和方法,优先考虑低级资源的多样性,并将应用程序打包在机器中,使得分配给给定机器的应用程序使用不同的低级资源,从而使得所有可能的低级资源都会被用到。

第一方面涉及一种通过优先考虑硬件资源多样性在分布式计算系统中进行分布式资源管理的计算机实现方法。该方法包括以下步骤:确定应用程序对相应硬件资源的使用情况,以生成使用量度;以及将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性,并提高在该集群中运行的应用程序对硬件资源的利用率。在示例实施例中,所述集群中的所述硬件资源的使用情况的多样性是根据在该集群中运行的相应应用程序的相应使用量度确定的。该方法在不牺牲应用程序本身性能的情况下提高了整体资源利用率和效率。该方法还提高了硬件集群和数据中心的资源利用率,降低了应用程序执行的平均延迟,减少了能源使用,并且由于因为每个应用程序花费的时间减少了而提高了成本节约。这种效率的提高对数据中心的能源和成本产生了巨大影响,使其更经济实惠、更能盈利、更环保。

根据所述第一方面,在第一种实现形式中,所述确定应用程序对相应硬件资源的使用情况包括:利用硬件性能计数器来确定所述应用程序对所述相应硬件资源的使用情况,以生成所述使用量度。

根据所述第一方面或所述第一方面的任一前述实现形式,在第二种实现形式中,确定所述应用程序对所述相应硬件资源的使用情况以确定所述使用量度是在所述应用程序离线运行时执行。

根据所述第一方面或所述第一方面的任一前述实现形式,在第三种实现形式中,确定所述应用程序对所述相应硬件资源的使用情况以确定所述使用量度是在所述应用程序由所述硬件资源执行时实时执行。

根据所述第一方面,在第四种实现方式中,所述方法还包括:通过微基准测试来表征所述相应硬件资源,以识别性能关键的硬件资源。

根据所述第一方面或所述第一方面的任一前述实现形式,在第五种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:向每个硬件资源的能力推送所述应用程序请求的硬件资源,并利用公平算法根据所述使用量度将所述应用程序分配给硬件资源的多样化池,以最大限度地提高所述多样化池中的所述硬件资源的使用情况的多样性。

根据所述第一方面或所述第一方面的任一前述实现形式,在第六种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:将所述应用程序分配给硬件资源的多样化池,其中,所述硬件资源的多样化池用于在被分配到所述硬件资源的多样化池的应用程序访问所述多样化池中的所述硬件资源时最大限度地减少干扰;并将来自不同多样化池的应用程序分配给所述硬件资源集群。

根据所述第一方面或所述第一方面的任一前述实现形式,在第七种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:利用所述公平算法将所述应用程序和其它应用程序分类到硬件资源的多样化池中。

根据所述第一方面或所述第一方面的任一前述实现形式,在第八种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:选择多样性最低的硬件资源集群,并将来自相应多样化池的应用程序分配给所述多样性最低的硬件资源集群进行处理。

根据所述第一方面或所述第一方面的任一前述实现形式,在第九种实现形式中,所述方法还包括:通过确定高速缓存一致性、内存带宽、多级高速缓存性能、处理器总线性能、处理器管线性能、高速缓存带宽、高速缓存命中率以及非一致性内存访问延迟中的至少一个来确定硬件资源的模块的性能。

第二方面涉及一种通过优先考虑硬件资源的多样性在分布式计算系统中进行分布式资源管理的装置。该装置包括:至少一个硬件性能计数器,用于生成应用程序对相应硬件资源的使用量度;以及资源管理器,用于根据所述使用量度将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性,并提高在该集群中运行的应用程序对硬件资源的利用率。在示例实施例中,所述集群中的所述硬件资源的使用情况的多样性是根据在该集群中运行的相应应用程序的相应使用量度确定的。该装置在不牺牲应用程序本身性能的情况下提高了整体资源利用率和效率。该装置还提高了硬件集群和数据中心的资源利用率,降低了应用程序执行的平均延迟,减少了能源使用,并且由于因为每个应用程序花费的时间减少了而提高了成本节约。

根据所述第二方面,在第一种实现形式中,所述确定应用程序对相应硬件资源的使用情况包括:利用硬件性能计数器来确定所述应用程序对所述相应硬件资源的使用情况,以生成所述使用量度。

根据所述第二方面或所述第二方面的任一前述实现形式,在第二种实现形式中,确定所述应用程序对所述相应硬件资源的使用情况以确定所述使用量度是在所述应用程序离线运行时执行。

根据所述第二方面或所述第二方面的任一前述实现形式的第三种实现形式中,确定所述应用程序对所述相应硬件资源的使用情况以确定所述使用量度是在所述应用程序由所述硬件资源执行时实时执行。

根据所述第二方面或所述第二方面的任一种实现形式,在第四种实现形式中,所述方法还包括:通过微基准测试来表征所述相应硬件资源,以识别性能关键的硬件资源。

根据所述第二方面或所述第二方面的任一前述实现形式,在第五种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:向每个硬件资源的能力推送所述应用程序请求的硬件资源,并利用公平算法根据所述使用量度将所述应用程序分配给硬件资源的多样化池,以最大限度地提高所述多样化池中的所述硬件资源的使用情况的多样性。

根据所述第二方面或所述第二方面的任一前述实现形式,在第六种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:将所述应用程序分配给硬件资源的多样化池,其中,所述硬件资源的多样化池用于在被分配到所述硬件资源的多样化池的应用程序访问所述多样化池中的所述硬件资源时最大限度地减少干扰;并将来自不同多样化池的应用程序分配给所述硬件资源集群。

根据所述第二方面或所述第二方面的任一前述实现形式,在第七种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:利用所述公平算法将所述应用程序和其它应用程序分类到硬件资源的多样化池中。

根据所述第二方面或所述第二方面的任一前述实现形式,在第八种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:选择多样性最低的硬件资源集群,并将来自相应多样化池的应用程序分配给所述多样性最低的硬件资源集群进行处理。

根据所述第二方面或所述第二方面的任一前述实现形式,第九种实现形式中,所述方法还包括:通过确定高速缓存一致性、内存带宽、多级高速缓存性能、处理器总线性能、处理器管线性能、高速缓存带宽、高速缓存命中率以及非一致性内存访问延迟中的至少一个来确定硬件资源的模块的性能。

根据本公开第三方面,提供一种存储有计算机指令的非瞬时性计算机可读介质,以通过优先考虑硬件资源的多样性在分布式计算系统中进行分布式资源管理。当所述指令由一个或多个处理器执行时,实现以下方法:确定应用程序对相应硬件资源的使用情况以生成使用量度;以及根据所述使用量度将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性,并提高在该集群中运行的应用程序对硬件资源的利用率。在示例实施例中,所述集群中的所述硬件资源的使用情况的多样性是根据在该集群中运行的相应应用程序的相应使用量度确定的。该介质在不牺牲应用程序本身性能的情况下提高了整体资源利用率和效率。该介质还提高了硬件集群和数据中心的资源利用率,降低了应用程序执行的平均延迟,减少了能源使用,并且由于因为每个应用程序花费的时间减少了而提高了成本节约。

根据所述第三方面,在第一种实现形式中,所述确定应用程序对相应硬件资源的使用情况包括:利用硬件性能计数器确定所述应用程序对所述相应硬件资源的使用情况,以生成所述使用量度。

根据所述第三方面或所述第三方面的任一前述实现形式,在第二种实现形式中,确定所述应用程序对所述相应硬件资源的使用情况以确定所述使用量度是在所述应用程序离线运行时执行。

根据所述第三方面或所述第三方面的任一前述实现形式,在第三种实现形式中,确定所述应用程序对所述相应硬件资源的使用情况以确定所述使用量度是在所述应用程序由所述硬件资源执行时实时执行。

根据所述第三方面或所述第三方面的任一种实现形式,在第四种实现形式中,所述方法还包括:通过微基准测试表征所述相应硬件资源,以识别性能关键的硬件资源。

根据所述第三方面或所述第三方面的任一前述实现形式,在第五种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:向每个硬件资源的能力推送所述应用程序请求的硬件资源,并利用公平算法根据所述使用量度将所述应用程序分配给硬件资源的多样化池,以最大限度地提高所述多样化池中的所述硬件资源的使用情况的多样性。

根据所述第三方面或所述第三方面的任一前述实现形式,在第六种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:将所述应用程序分配给硬件资源的多样化池,其中,所述硬件资源的多样化池用于在被分配到所述硬件资源的多样化池的应用程序访问所述多样化池中的所述硬件资源时最大限度地减少干扰;并将来自不同多样化池的应用程序分配给所述硬件资源集群。

根据所述第三方面或所述第三方面的任一前述实现形式,在第七种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:利用所述公平算法将所述应用程序和其它应用程序分类到硬件资源的多样化池中。

根据所述第三方面或所述第三方面的任一前述实现形式,在第八种实现形式中,所述将所述应用程序分配给硬件资源集群,以优化所述集群中的所述硬件资源的使用情况的多样性包括:选择多样性最低的硬件资源集群,并将来自相应多样化池的应用程序分配给所述多样性最低的硬件资源集群进行处理。

根据所述第三方面或所述第三方面的任一前述实现形式,在第九种实现形式中,所述方法还包括:通过确定高速缓存一致性、内存带宽、多级高速缓存性能、处理器总线性能、处理器管线性能、高速缓存带宽、高速缓存命中率以及非一致性内存访问延迟中的至少一个来确定硬件资源的模块的性能。

如下面的具体实施方式中所述,该装置和方法创建了一种机制,以提高分配给硬件集群或数据中心的应用程序对较低级资源的使用效率。

所述方法可以由所述装置执行,且所述计算机可读介质上的所述指令可以由所述装置处理。并且所述方法和所述计算机可读介质上的所述指令的进一步特征来自该装置的功能。此外,为每个方面及其实现方式提供的解释同样适用于其它方面和相应的实现方式。不同的实施例可以以硬件、软件或其任何组合实现。此外,上述示例中的任何一个可以与上述其它示例中的任何一个或多个组合,以创建本公开范围内的新实施例。

附图说明

在附图中,其中,所述附图不一定是按比例绘制的,类似的数字可以描述不同的图中的类似的部件。所述附图通过示例而非限制的方式示出了在本文件中讨论的各种实施例。

图1示出了在示例实施例中将应用程序分发到节点集群以提高多样性的分布式资源管理系统;

图2示出了使用本文描述的技术被分配到节点集群以提高多样性的应用程序的示例集;

图3示出了使用传统细粒度资源计数技术将应用程序的示例集分配给节点集群的示例;

图4示出了根据示例实施例的利用多样化资源管理系统将应用程序的示例集分配给节点集群的示例;

图5示出了根据示例实施例的多样化资源管理算法的流程图;以及

图6示出了适合实现本文公开的装置、方法和计算机可读存储介质的一个或多个实施例的典型的通用网络组件。

具体实施方式

首先应理解,尽管下文提供了一个或多个实施例的说明性实施方式,但是结合图1至图6描述的所公开的系统和/或方法可以通过任何数量的技术来实现,无论这些技术是当前已知的还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

本文描述的系统和方法通过识别和提高分配给集群的应用程序使用的低级资源的多样性,在不影响数据中心和大型硬件集群中的应用程序性能的情况下提高了集群利用率。在示例实施例中,资源管理器将应用程序打包在同一机器或机器集群中,以在同一台计算机中放置多种类型的不同任务(例如,CPU密集型与内存访问密集型的应用程序等),以提高整体资源利用率和效率,而不牺牲应用程序本身的性能。这是通过以下方式实现的:确定应用程序对相应低级硬件资源的使用情况以生成使用量度,并将所述应用程序分配给硬件资源集群,以优化在该集群上运行的应用程序对集群中这些相同硬件资源的使用情况的多样性。所述集群中的硬件资源的使用情况的多样性是根据在该集群中运行的相应应用程序的使用量度确定的。

利用硬件性能计数器和根据微基准测试的硬件和应用程序表征识别性能关键的硬件资源,以建立此类使用量度。可以购买此类工具用于测试特定资源,也可以开发此类工具作为特定硬件集群中特定硬件资源的定制产品。如本领域技术人员所知,硬件性能计数器是内置在微处理器中的一组专用寄存器,用于存储计算机系统内硬件相关活动的计数。此类计数器通常用于执行低级性能分析或调整。每个硬件性能计数器可以通过要监控的事件类型的索引进行编程,例如,L1高速缓存未命中或分支错误。软件分析器执行类似的功能,但通常需要修改源代码,这通常是不希望的。此外,一些处理器使用根据指令的采样(instruction based sampling,IBS)技术在超标量管线的相应端实现用于提取采样和操作采样的性能计数器。

另一方面,微基准测试包括在硬件系统上运行计算机程序或一组程序或其它操作,以评估所述硬件系统的相应组件的相对性能。所述计算机程序或其它操作通常实施许多标准测试和试验,从而测试硬件,以确定,例如,性能边界。基准测试通常与性能特征评估,例如,CPU的浮点运算性能评估,相关,但也可以将微基准测试应用于其它硬件组件和软件,以使各种硬件子系统和基本组件的性能能够在不同的芯片和系统架构中进行比较。例如,微基准测试通常用于自动检测计算机的硬件参数,例如,寄存器数量、高速缓存大小、内存延迟等。

然后,所述资源管理器使用所获得的使用量度来执行资源分配,以最大限度地提高给定节点(机器)处理的应用程序对硬件资源的使用情况的多样性。可以根据应用程序离线运行时收集的使用量度(例如,为私有云中熟悉的应用程序收集的使用量度)将应用程序分配给资源,但也可以实时收集新的和不可预测的应用程序的以及在应用程序运行时动态重新分配的应用程序的使用量度。然后,可以根据收集的使用量度将应用程序分配或重新分配给节点以进行处理。

由于这些技术,根据机器的不同的低级资源将应用程序分配给机器。与其严格按所需的CPU或内存周期分配应用程序,不如将特征不同的应用程序打包在一起,以确保计算机中的所有低级资源都得到充分利用。

如本文所使用的,“应用程序”是指需要计算系统资源才能运行的软件应用程序。这样的计算系统资源包括由传统资源管理器管理的计算系统资源,包括高级资源,如CPU、内存容量、磁盘配额等,以及决定应用程序性能的低级资源,包括CPU管线、高速缓存一致性、内存带宽,多级高速缓存、处理器总线等。这些较低级资源通常在多个CPU之间共享,不能直接获取。

本领域技术人员将认识到,获取诸如CPU和内存的高级资源不能保证效率和性能,特别是在其它计算系统资源的使用情况方面。本文描述的系统和方法通过在将应用程序分配给计算系统资源时优先考虑低级资源多样性来解决这个问题,使得所有能用的低级资源都被使用。

实施多样性是一种积极的资源管理方法,它将昂贵的硬件资源专用于使用这些硬件资源的特定应用程序,因为满足资源需求与获得性能是不同的。对诸如Mesos和Quasar等使用中心调度的传统资源管理系统进行修改以根据本文描述的可扩展算法分配所述应用程序,以最大限度地提高资源多样性,而不是严格依赖CPU和内存调度。通过将机器划分为用于应用程序分配的子集群,可以使算法具有可扩展性。

在示例实施例中,通过以下方式将应用程序分配给硬件资源集群以优化所述集群中的所述硬件资源的使用情况的多样性:向每个硬件资源的能力推送所述应用程序请求的硬件资源,并利用公平算法(例如,循环或比例公平算法)根据每个应用程序的硬件使用量度将应用程序分配给硬件资源的多样化池,以最大限度地提高多样化池中硬件资源的使用情况的多样性。循环算法通常由进程和网络调度器使用,从而循环地以等分的方式为每个进程分配时间片,以便不区分优先级地对所有进程进行处理。另一方面,比例公平算法是一种根据妥协的调度算法,它通过为每个应用程序分配与其预期的资源消耗成反比的调度优先级,在试图最大限度地提高总吞吐量和允许所有用户(应用程序)至少最低服务级别之间保持平衡。尽管优先考虑硬件利用率和性能,但通过对硬件分配施加限制,公平性仍然得到保证。在不同的配置中,相应应用程序的优先级可能会不同,可以不同地表征硬件,可以改变公平性保证等。但是,总体方法仍然无缝地工作,以提供一个整体方法,以通过将应用程序打包在一起来最大限度地利用资源,降低能源成本并提高性能。

应当理解,仅对于某些私有云和应用程序而言,根据硬件使用量度将应用程序打包在一起是可取的,因为公司可能希望在执行本文描述的根据使用情况的资源分配之前一起运行不同的应用程序并观察兼容性(例如,无干扰)。但是,本文描述的技术的好处是,它们可以在公共云和私有云中工作,而无需手动实验或特定专业知识。

图1示出了在示例实施例中将应用程序分发到节点(实际的机器或虚拟机)集群以提高多样性的分布式资源管理系统。如图所示,由资源管理器102将多个应用程序100分配给节点106的集群104。在示例实施例中,硬件性能计数器108与每个应用程序100关联,以测量每个应用程序100使用的低级资源的硬件使用量度,并对每个应用程序100强调的硬件模块/资源进行分类。当所述应用程序在集群104中运行时,所述硬件性能计数器108可以实时测量新的和/或不可预测的应用程序的使用量度,和/或可以离线为模拟所述集群104中的所述应用程序的操作的私有云或计算机节点中的熟悉应用程序获取使用量度。如下面关于图5进一步解释的,所述资源管理器102实现分布式资源管理算法110,以利用诸如循环排序算法等公平算法将所述应用程序100分配给多样化池,其中所述分配是根据每个应用程序100的使用量度执行的。在示例实施例中,使用量度测量应用程序对节点的硬件资源的使用情况,例如,内存边界112、CPU管线边界114、磁盘边界116和高速缓存一致性边界118。在示例实施例中,也可以测量其它使用量度,例如,处理器管线利用率或占用、高速缓存带宽、高速缓存命中率、高速缓存污染、内存带宽、非一致性内存访问延迟、一致性流量等。

为了说明图1的分布式资源管理系统的操作,图2示出了用于分配给节点106的集群104以通过本文描述的技术提高多样性的应用程序的示例集。表200示出了应用程序特征,包括为相应应用程序100测量的内存边界202、CPU管线边界204、磁盘边界206以及高速缓存一致性边界208。如表200所示,相应应用程序100被识别为由它们的内存使用特性(M1、M2、M3)约束,由它们的CPU管线特性(C1、C2、C3)约束,由它们的磁盘使用情况特性(D1、D2、D3)约束,或由其高速缓存一致性特征(CC1、CC2)约束。当然,相应应用程序可以受其它低级硬件特征的约束,并相应地界定。

图3示出了使用诸如传统细粒度资源计数技术分配给节点106的集群104的应用程序100的样本集。在图3的示例中,因为传统的资源管理系统不知道相应应用程序的这种特征,当将应用程序100分配给集群104中的节点106时,不考虑诸如内存边界202、CPU管线边界204、磁盘边界206以及高速缓存一致性边界208等的低级资源的使用量度。相反,根据高级资源的使用(例如,CPU周期、内存访问周期等)将应用程序100分配给节点100,如表300所述。如表300所示,不管相应节点对相应应用程序特征的边界如何都将应用程序100分配给相应节点106,导致每个机器在不同的压力下饱和。

另一方面,图4示出了根据示例实施例的利用多样化资源管理系统将应用程序100的示例集分配给节点的集群的示例。在表400中所示的分配中,通过考虑由硬件性能计数器108确定的每个应用程序100的性能特征以及考虑相应节点106的硬件特征,将所述应用程序分配给相应节点106。特别地,对所述应用程序100进行分配以最大限度地提高对相应节点106的资源的使用情况的多样性,以避免每个应用程序100的性能边界。在表400中的示例分配中,没有节点具有多个具有相同类型硬件边界的应用程序。一般来说,将所述应用程序100分配给相应的节点,以最大限度地提高这种多样性。

通常,CPU管线是最快的低级资源。其它的速度较慢,因此数量少于可用的CPU内核的数量的CPU内核就可以使其饱和。在将所述应用程序100分配给相应的节点(机器)时会考虑这一点,其中应用程序100的分配取决于节点的不同低级资源。在图4的示例中,将特征不同的应用程序100打包在相同的节点106上。通过将应用程序所需的资源外推至相应节点的硬件能力来获得对任何节点106上的应用程序100可用的资源的限制,其中,所述硬件能力是通过微基准测试软件120(图1)来表征的,所述软件120测量每个节点对特定资源的最大使用能力。如下面图5所解释的,在将相应应用程序100分配给节点106进行处理时,也考虑相应节点106的硬件特征。

图5示出了根据示例实施例的由资源管理器102(图1)实现的多样化资源管理算法500的流程图。所述多样化资源管理算法500的任务是:通过将应用程序对硬件资源的使用情况与可用于应用程序分配的相应节点(机器)106的能力重叠来识别性能关键特征。根据至关重要的硬件使用情况将所述应用程序100添加到适当的多样化池。在图5中,由硬件性能计数器108在502中实时监控新的应用程序100对硬件资源的使用情况,或者将离线为所述应用程序100收集的所述硬件资源的使用量度作为应用程序历史504提供给中央资源管理器506,以建立用于将所述应用程序100分配给多样化池508的应用程序多样化分类(例如,所述应用程序的所述硬件资源分界特征)。在510,根据当前分配(如果应用程序100已经在节点106上运行)将应用程序100分类到多样化池508中,或者利用诸如循环例程、最低分配优先算法,主导资源公平算法等公平算法将应用程序100分配给节点106,以根据测量的低级资源100的资格对应用程序100进行分类。

一旦在510将所述应用程序100分类到多样化池508中,在512为每个节点106选择来自不同多样化池508的最合格的应用程序。将可用于在集群104内进行应用程序分配的相应节点106的硬件特征514以及相应节点106的多样性得分作为应用程序分配步骤512的输入。如上所述,所述硬件特征514可以利用微基准测试技术来确定,以识别对于特定资源而言每个机器硬件的最大使用程度。通常,所述目标是根据多样性得分来选择多样性最小的具有可用硬件资源的节点106,并从所述多样化池508中选择由该硬件资源约束但根据测量的所述待分配的应用程序100对所述硬件资源的使用量度不会使该硬件资源饱和的应用程序100。如果没有足够的硬件资源来分配应用程序100,则在516中从多样化池508的每一端选择应用程序100,以酌情选择使用最多资源或最少资源的应用程序100。与其它应用程序(对资源的资格较低)相比,对超额资源分配的限制防止了不公平的分配,并确保了公平。但是,在此过程中,某些多样化组合(CPU+内存+磁盘)可以选择性地优先于其它组合(CPU+L2高速缓存+L3高速缓存),以进一步减少干扰。如果不存在来自不同的多样化池508的应用程序或来自不同的多样化池508的应用程序不合格,则根据资源使用量度选择最合格的应用程序100。

一旦已经根据所述应用程序100的使用情况特征对应用程序100进行分配以相对于相应节点106上可用的硬件资源而言,最大限度地提高低级硬件资源的使用情况的多样性,在518中更新所述应用程序100和节点数据库520,以反映应用程序100已被分配到的节点106的多样性得分。根据节点的已更新的数据库520中提供的已更新的应用程序的使用量度和多样性得分以及根据相应节点106的硬件特征514,多样化资源管理算法500在522中确定每个节点106可用于分配的资源。然后在524中,计算所述集群104中每个节点106的多样性得分。所述多样性得分是所述硬件特性514和分配给相应节点106的相应应用程序100的监控的使用量度的函数。将所述更新的多样性得分作为节点选择步骤512的进一步输入,用于根据现有硬件使用情况识别仍可用于应用程序分配的多样性最低的节点。在分配应用程序100之后,节点的多样性得分也可以作为输入反馈到公平算法510,以帮助将应用程序分类到多样化池508中。只要有应用程序100可供分配即重复图5中所示的过程。

因此,与传统的资源应用程序系统不同,其中,所述传统的资源应用程序系统因为不感知应用程序特征而不识别性能饱和,本文描述的系统和方法识别性能饱和,并分配应用程序以最大限度地提高性能,从而尽可能避免此类性能边界。此外,由于不同的硬件机器在不同的压力下饱和,因此类似地监控机器特征,以提高将应用程序分配给相应节点的效率。通过这种方法,执行各种应用程序的节点的性能提高了60%以上。本领域技术人员将理解,通过使用本文描述的技术增加资源利用率,大多数受CPU约束的应用程序也具有改进的空间。

本领域技术人员将理解,只要保持用于增加硬件使用情况多样性的总体方法,本文描述的技术可以用于对应用程序进行不同地优先级排序、不同地表征硬件以及改变公平性保证等。当然,本文描述的技术不需要排他性地使用,而是可以补充传统的资源管理系统,其中,这些传统的资源管理系统根据诸如CPU周期和内存访问周期等高级系统元素的使用情况来分配资源。还将理解,本文描述的技术可以通过智能地将应用程序打包在一起,以例如根据能源使用情况最大程度地提高对低级元件的使用,从而降低能源成本并提高性能。

本领域技术人员还将理解,本文描述的技术尤其适用于在私有云和应用程序中使用,这是因为维护私有云的公司或个人有能力实验性地一起运行不同的应用程序并观察兼容性。但是,本文所述的技术通过实时或离线监控和测量新应用程序的硬件使用量度,在无需手动实验/专业技能的情况下适用于公共云和私有云,如本文所述。因此,本文描述的系统和方法能提高集群和数据中心的资源利用率,减少应用程序执行的平均延迟,并由于每个应用程序花费的时间减少而提高能源和成本节约。

图6示出了处理系统形式的电路的框图,用于实现如图1至5的示例实施例中的在上位机集群中提供多样化资源管理的系统和方法。不需要在各种实施例中使用所有组件。计算机600形式的一个示例计算设备可以包括处理单元602、内存603、可移动存储器610和不可移动存储器612。虽然所述示例计算设备被描述为计算机600,但所述计算设备在不同的实施例中可以是不同的形式。例如,所述计算设备也可以是智能手机、平板电脑、智能手表或其它包括与图6所示和描述的相同或类似的元件的计算设备。诸如智能手机、平板电脑和智能手表等设备通常统称为移动设备或用户设备。此外,尽管各种数据存储元件被描述所述计算机600的一部分,但所述存储器也可以或可选地包括通过网络访问的根据云的存储器,例如,根据互联网或服务器的存储器。

所述内存603可以包括易失性存储器614和非易失性存储器608。计算机600还可以包括或可以访问包括各种计算机可读介质的计算环境,例如,易失性存储器614和非易失性存储器608、可移动存储器610和不可移动存储器612。计算机存储器包括随机访问存储器(random access memory,简称RAM)、只读存储器(read only memory,简称ROM)、可擦除可编程只读存储器(erasable programmable read only memory,简称EPROM)或电可擦除可编程只读存储器(electrically erasable programmable read only memory,简称EEPROM)、闪存或其它存储器技术,只读光盘(compact disc read only memory,简称CDROM)、数字多功能光盘(digital versatile disc,简称DVD)或其它光盘存储、磁卡带、磁带、磁盘存储器或其它磁存储设备、或能够存储计算机可读指令的任何其它介质。

所述计算机600可以包括或访问包括输入接口606、输出接口604和通信接口616的计算环境。所述输出接口604可以包括显示设备,例如触摸屏,其也可以用作输入设备。所述输入接口606可以包括触摸屏、触摸板、鼠标、键盘、相机、一个或多个设备专用按钮、集成在所述计算机600内或通过有线或无线数据连接耦合到所述计算机600的一个或多个传感器以及其它输入设备中的一个或多个。所述计算机600可以使用通信连接在联网环境中操作,以连接到一个或多个远程计算机,所述远程计算机可以包括个人计算机(personalcomputer,PC)、服务器、路由器、网络PC、对端设备或其它公共DFD网络交换机等。所述通信连接可以包括局域网(local area network,LAN)、广域网(wide area network,WAN)、蜂窝、Wi-Fi、蓝牙或其它网络。根据一个实施例,所述计算机600的各种组件与系统总线620连接。

存储在计算机可读介质上的计算机可读指令,例如,程序618,可由所述计算机600的处理单元602执行。在一些实施例中,所述程序618包括软件,在所述软件由处理单元602执行时,执行根据本文包括的任何实施例的多样化资源管理操作。硬盘、CD-ROM和RAM是包括诸如存储设备等的非瞬时性计算机可读介质的物品的一些示例。术语“计算机可读介质”和“存储设备”不包括载波,以至于载波被认为是瞬时性的。存储器还可以包括网络存储器,例如,存储区域网络(storage area network,SAN)。所述计算机程序618还可以包括指令模块,其在处理时使得所述处理单元602执行本文描述的一个或多个方法或算法。

在示例实施例中,所述计算机600包括:使用情况确定模块,用于确定应用程序对相应硬件资源的使用情况,以生成使用量度;以及集群分配模块,用于将所述应用程序分配给硬件资源集群,以优化集群中硬件资源的使用情况的多样性并提高在该集群中运行的应用程序对硬件资源的利用率,其中,集群中硬件资源的使用情况的多样性是根据在该集群中运行的相应应用程序的相应使用量度确定的。在一些实施例中,所述计算机600可以包括其它或附加模块,用于执行实施例中描述的步骤中的任何一个步骤或组合。此外,如任何附图中所示或任一权利要求中所述,所述方法的任何附加或替代实施例或方面也可以包括类似的模块。

虽然上面已经详细描述了一些实施例,但也可以进行其它修改。例如,图中所示的逻辑流程不需要所示的特定顺序或先后顺序来获得理想的结果。可以从所述流程中提供其它步骤,或可以从所述流程中删除步骤,并且可以将其它组件添加到所述系统中或从所述系统中删除。其它实施例可以在以下权利要求的范围内。

还应理解,可以将包括一个或多个计算机可执行指令的软件安装在与本公开一致的一个或多个计算设备中并与之一起销售,所述一个或多个计算机可执行指令有助于上文参考本公开的任何一个或所有步骤描述的处理和操作。或者,可以获取所述软件并将其加载到一个或多个计算设备中,包括通过物理介质或分发系统获取软件,包括例如从软件创建者拥有的服务器或从软件创建者不拥有但使用的服务器获取软件。例如,软件可以存储在服务器上,以便通过互联网分发。

此外,本领域技术人员将理解,本公开在其应用中并不限于实施例中所述的或附图中示出的部件的结构和布置的细节。这里的实施例可以是其它实施例,并且能够以各种方式实践或执行。此外,将理解,此处使用的措辞和术语是为了描述的目的,不应被视为限制。在此使用的“包含”、“包括”或“具有”及其变体旨在包括此后列出的项及其等效物以及附加项。除非另有限制,术语“连接”、“耦合”、“安装”及其变体在本文中被广泛使用,并包括直接和间接连接、耦合和安装。此外,术语“连接”和“耦合”及其变体不限于物理或机械连接或耦合。

根据所示实施例采用的说明性设备、系统和方法的组件可以至少部分地在数字电子电路、模拟电子电路或计算机硬件、固件、软件或它们的组合中实现。例如,这些组件可以实现为计算机程序产品,例如,有形地体现在信息载体或机器可读存储设备中的计算机程序、程序代码或计算机指令,以由数据处理装置执行或控制数据处理装置,例如,可编程处理器、计算机或多台计算机。

计算机程序可以以任何形式的编程语言编写,包括编译语言或直译式语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或其它适合在计算环境中使用的单元。可以对计算机程序进行部署以在一台计算机上、一个站点的多台计算机上,或多个站点的通过通信网络互连的计算机上执行。此外,与本文描述的技术相关的领域的程序员可以容易地将用于实现本文描述的技术的功能程序、代码和代码段解释为在权利要求书的范围内。可以由一个或多个可编程处理器执行计算机程序、代码或指令以执行功能(例如,通过对输入数据进行操作和/或生成输出)来执行与说明性实施例相关联的方法步骤。例如,所述方法步骤也可以由诸如现场可编程门阵列(field programmable gatearray,FPGA)或专用集成电路(application-specific integrated circuit,ASIC)等的专用逻辑电路执行,并且用于执行方法的装置可以实现为诸如现场可编程门阵列(fieldprogrammable gate array,FPGA)或专用集成电路(application-specific integratedcircuit,ASIC)等的专用逻辑电路。

结合本文公开的实施例描述的各种说明性逻辑块、模块和电路可以用通用处理器、数字信号处理器(DSP)、ASIC、FPGA或其它可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件、或其设计用于执行本文所述功能的任何组合。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

适用于执行计算机程序的处理器例如包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的所需元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括诸如磁盘、磁光盘或光盘的一个或多个用于存储数据的大容量存储设备,或可操作地耦合以从诸如磁盘、磁光盘或光盘的一个或多个用于存储数据的大容量存储设备接收数据和/或向诸如磁盘、磁光盘或光盘的一个或多个大容量存储设备传输数据。适合于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,例如,包括:半导体存储设备,例如,电可编程只读存储器或ROM(EPROM)、电可擦除可编程ROM(EEPROM),闪存设备和数据存储磁盘(例如磁盘、内部硬盘或可移动磁盘、磁光盘、CD-ROM和DVD-ROM磁盘)。处理器和内存可以由专用逻辑电路补充或结合在专用逻辑电路中。

本领域技术人员应当理解,信息和信号可以使用不同的技术和方法中的任意一种来表示。例如以上描述提到的数据、指令、命令、信息、信号、比特、符号和芯片可由电压、电流、电磁波、磁场或粒子、光场或粒子、或者任何组合表示。

如本文所使用的,“机器可读介质”是指能够临时或永久存储指令和数据的设备,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质,磁性介质、高速缓存存储器、其它类型的存储器(例如,可擦除可编程只读存储器(EEPROM))和/或其任何适当的组合。术语“机器可读介质”应被视为包括能够存储处理器指令的单个介质或多个介质(例如,集中式或分布式数据库,或关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储由一个或多个处理器602执行的指令的任何介质或多个介质的组合,使得当所述指令由一个或多个处理器602执行时,使得所述一个或多个处理器602执行本文描述的任何一个或多个方法。因此,“机器可读介质”指单个存储装置或设备,以及包括多个存储装置或设备的“根据云的”存储系统。

本领域技术人员将理解,虽然已经结合方法描述了示例实施例,其中,在示例实施例中所述方法用于在将应用程序分配给硬件集群中的节点(机器)时提供多样化资源管理,但本公开并不限于此。例如,此处描述的技术可用于跨虚拟机分配应用程序。本文描述的技术还可用于将软件分配给多个节点,从而使应用程序的多个实例在不同机器的多个线程上运行。在这些实施例中,所述硬件资源可以由不同机器上的不同应用程序不同地使用。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。

尽管已经参考本发明的特定特征和实施例描述了本发明,但是明显在不脱离本发明的情况下可以制定本发明的各种修改和组合。说明书和附图仅被视为所附权利要求书所定义的本发明的说明并且考虑落于本发明的范围内的任何和所有修改、变体、组合或均等物。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号