基于资源重要程度的集群程序调度方法与流程

文档序号:12034428阅读:243来源:国知局
基于资源重要程度的集群程序调度方法与流程

本发明涉及并行与分布计算,尤其是集群中程序的调度,特别涉及基于资源重要程度的集群程序调度方法。



背景技术:

数据中心作为云计算的基础设施和用户与云服务运营商可以共赢的载体,随着网络访问非本地计算服务的增加,已经从概念走向成熟。但是数据中心资源利用率一般不足30%。而低资源利用率导致较低能效,2012年纽约时报的调查显示数据中心浪费大量能耗,只有总能耗的6%到12%用作了有效的计算。如何提高资源利用率成为云计算运营商需要考虑的关键问题,从商业角度和学术角度都备受关注。

负载聚合(workloadconsolidation)是提高数据中心资源利用率的重要手段,负载聚合是把多个程序分配到一个计算节点上,从而使服务器结点节点提高计算、存储、磁盘i/o等资源的利用率,并可以关闭更多空闲节点以降低能耗开销。近期调查显示随着计算需求的增加,超过60%的数据中心运营商会采用负载聚合。负载聚合可以在程序性能与系统资源利用率之间实现权衡。

当前数据中心运行多种多样的程序,如处理器密集型、磁盘密集型等等。然而,在数据中心当前通用的负载聚合方法是在做调度决策时只考虑处理器和内存资源,根据程序对这两种资源的占用实现调度,从而达到集群中处理器和内存资源的负载均衡。但是这种方法忽略了程序对磁盘和网络带宽资源的占用容量,往往导致磁盘密集或网络带宽密集程序较低的性能。因此,需要一种更适用于数据中心的调度策略能够考虑处理器、内存、磁盘带宽、网络带宽等多种资源,保证各种特征的程序的性能。



技术实现要素:

本发明的目的是提出一种基于资源重要程度的集群程序调度方法,该调度方法针对每个程序将资源按照对程序的重要程度排序,称这个序列为资源重要程度序列。在查找节点时按照资源重要程度序列查找资源,从而保证多种类型的程序的性能。

基于资源重要程度的集群程序调度方法,在实现调度时考虑处理器、磁盘读取、磁盘写入、内存和网络带宽五个资源,包括以下步骤:

步骤(1):资源采集:获取处理器、磁盘读取、磁盘写入、内存和网络带宽五个资源的空闲资源信息;

步骤(2):资源排序:首先,计算资源对程序重要程度;然后,对于任务队列中的每一个程序,按照资源对程序的重要程度对资源进行排序;得到每一个程序的资源重要程度序列;

步骤(3):调度:对于任务队列中的每一个程序,从资源重要程度序列中选取第一个资源,并为第一个资源查找若干个服务器节点;查找若干个服务器节点以所查找的服务器节点的空闲资源容量大于程序对第一个资源的占用容量为标准;

然后,从第一个资源已经查找出的服务器节点中,为第二个资源查找满足需求的服务器节点,同样,以所查找的服务器节点的空闲资源大于程序对第二个资源的占用容量为标准;

以此类推,直至序列中为最后一个资源查找出满足需求的服务器节点,将最后一个资源查找出的服务器节点存储到服务列表中;

程序执行的时候,直接从服务列表中选择服务器节点进行程序运行。

所述步骤(1)的步骤为:

步骤(101):获取服务器节点上处理器、磁盘读取、磁盘写入、内存、网络带宽五个资源的已使用容量;

步骤(102):利用处理器、磁盘读取、磁盘写入、内存、网络带宽五个资源各自的总容量,对应减去每个资源各自的已使用容量,得到每个资源的空闲资源信息;

步骤(103):周期性的报告当前资源的空闲资源信息。

所述步骤(101)中采用通过性能分析工具collectl来获取服务器节点上处理器、磁盘读取、磁盘写入、内存、网络带宽五个资源的已使用容量。

所述资源对程序重要程度的计算方法如下:

步骤(201):对于每一种资源,设置程序在资源不受限条件执行时的资源量为最大资源限制点,设定比例范围内的最大资源限制点为最小资源限制点;

步骤(202):获得程序在最大资源限制点和最小资源限制点下的性能;

步骤(203):计算程序在最小资源限制点与最大资源限制点下的性能比值;所述性能比值就是资源对程序的重要程度值;资源对程序的重要程度值越大,说明资源大小变化对程序性能不敏感,资源对程序不重要;资源对程序重要程度值越小,说明资源大小变化对程序性能敏感,资源对程序重要;按照程序的重要程度值从小到大排序,得到程序的资源重要程度序列。

所述步骤(202):通过使用资源限制工具cgroups限制资源,获得程序在最大资源限制点和最小资源限制点下的性能;

所述程序在最小资源限制点与最大资源限制点下的性能比值为一个介于[0,1]之间的常数。

每个程序的先验信息,包括:程序对资源的占用容量以及程序的资源重要程度序列。

所述资源,包括:处理器、磁盘读取、磁盘写入、内存和网络带宽。

所述步骤(3)的步骤为:

对于任务队列中的每一个程序,从资源重要程度序列中选取第一个资源,并查找若干个第一类服务器节点,查找第一类服务器节点的标准是:每个第一类服务器节点的容量大于程序对第一个资源的占用容量;

然后,从资源重要程度序列中选取第二个资源,并从若干个第一类服务器节点中查找若干个第二类服务器节点;查找第二类服务器节点的标准是:每个第二类服务器节点的容量大于程序对第二个资源的占用容量;

然后,从资源重要程度序列中选取第三个资源,并从若干个第二类服务器节点中查找若干个第三类服务器节点;查找第三类服务器节点的标准是:每个第三类服务器节点的容量大于程序对第三个资源的占用容量;

然后,从资源重要程度序列中选取第四个资源,并从若干个第三类服务器节点中查找若干个第四类服务器节点;查找第四类服务器节点的标准是:每个第四类服务器节点的容量大于程序对第四个资源的占用容量;

然后,从资源重要程度序列中选取第五个资源,并从若干个第四类服务器节点中查找若干个第五类服务器节点;查找第五类服务器节点的标准是:每个第五类服务器节点的容量大于程序对第五个资源的占用容量;

最终,将所有第五类服务器节点名称存储到服务器列表中,服务器列表中的节点为能够映射的节点。

本发明基于资源重要程度调度的优点在于:

1、本发明通过有针对性的分析程序的重要资源,基于程序的重要资源进行调度。该方法避免了盲目的基于处理器资源和内存资源进行调度的缺点,保证了磁盘密集型、网络密集型程序的性能。

2、本发明对每个程序都按照不同的资源顺序查找执行环境,能够最大化发挥数据中心中资源的效用。

附图说明

图1是获取资源重要程度示意图。

图2是调度策略流程图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

图1描述获取处理器资源对程序datacaching的重要程度的方法。处理器有8个核,我们设置8个核为最大资源限制点,设置2个核为最小资源限制点。而程序占用2个核执行的性能与占用8个核执行时的性能比值即为我们要求的处理器资源对程序的重要程度。在示例中,处理器资源重要程度值为0.92。资源对程序的重要程度值越大,说明资源大小变化对程序性能不敏感,该资源对程序不重要。资源对程序重要程度值越小,说明资源大小变化对程序性能敏感,该资源对程序重要。按照此方法,可以计算处理器、磁盘读取、磁盘写入、内存、网络带宽资源对程序的重要程度值,按照数值从小到大排序,即可得到对于程序datacaching的资源重要程度序列。

图2描述调度策略。

一:空闲资源信息采集

在每一个节点上利用性能分析工具collectl获取当前节点的处理器、磁盘读取、磁盘写入、内存和网络带宽五个资源维度上的资源使用信息;而空闲资源则等于服务器节点的总资源减去已使用的资源;并周期性的向预测器报告当前节点上的空闲资源。

二:资源排序

根据图1的描述获得资源重要程度序列。

三:调度

对于任务队列中的每一个程序,都包含两组先验信息:程序在处理器、磁盘读取、磁盘写入、内存和网络带宽五个资源维度上的资源使用信息,程序的资源重要程度序列。

从资源重要程度序列中选取第一个资源,并查看程序对该资源的占用容量,以此为标准过滤服务器节点列表。重复上面步骤,直到资源重要程度序列中的资源被列举完,则停止查找,服务器列表中的节点即为可以映射的节点。进行映射。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1