服务器分配方法、服务器分配装置以及电子设备与流程

文档序号:12789689阅读:256来源:国知局
服务器分配方法、服务器分配装置以及电子设备与流程

本发明涉及一种服务器分配方法、服务器分配装置以及电子设备。



背景技术:

随着计算机技术的发展,集群被广泛使用。

目前,对Hadoop集群进行管理的管理器只能按照功能依赖关系来部署服务组件的部署,完全没有考虑服务器的资源/处理能力以及服务组件对服务器的资源/处理能力的消耗,所以需要部署人员根据自己的经验来手动调整每个服务组件应部署到哪个服务器。因为这种方式不仅对部署人员要求高,而且在集群规模较大时即费时间又特别繁琐,不宜达到对集群资源的最优化利用。

因此,期望提供不需要部署人员根据自己的经验来手动调整,即使是在集群规模较大时,也能够简单地达到集群资源的最优化利用的方案。



技术实现要素:

本申请实施例提供了一种服务器分配方法、服务器分配装置以及电子设备,其不需要部署人员根据自己的经验来手动调整,即使是在集群规模较大时,也能够简单地达到集群资源的最优化利用。

第一方面,提供了一种服务器分配方法,包括:获取能够处理任务项的至少两个服务器的备用处理资源;估计待处理的任务项在运行时所使用的服务器的需求处理资源;以及基于所述至少两个服务器的备用处理资源和所述需求处理资源来选择用于运行所述任务项的目标服务器。

结合第一方面,在第一方面的一种实现方式中,所述基于所述至少两个服务器的备用处理资源和所述需求处理资源来选择用于运行所述任务项的目标服务器包括:比较所述至少两个服务器中的每个服务器的备用处理资源和所述需求处理资源;以及基于所述比较结果来选择所述目标服务器。

结合第一方面及其上述实现方式,在第一方面的另一实现方式中,所述基于所述比较结果来选择所述目标服务器包括:如果服务器的备用处理资源小于所述需求处理资源,则不选择该服务器作为所述目标服务器;如果服务器的备用处理资源大于等于所述需求处理资源,则将该服务器作为备用服务器;以及从所述备用服务器中选择所述目标服务器。

结合第一方面及其上述实现方式,在第一方面的另一实现方式中,所述从所述备用服务器中选择所述目标服务器包括:计算每个备用服务器的剩余服务资源,该剩余服务资源是该服务器运行所述任务项之后的剩余资源;以及从所述备用服务器中选择剩余服务资源最大的服务器作为目标服务器。

结合第一方面及其上述实现方式,在第一方面的另一实现方式中,在所述备用服务器的数量为至少两个的情况下,所述从所述备用服务器中选择剩余服务资源最大的服务器作为目标服务器包括:从所述备用服务器的备用处理资源减去所述需求处理资源,将所得的差进行归一化;对归一化值进行加权;以及选择加权值最大的备用服务器作为所述目标服务器。

结合第一方面及其上述实现方式,在第一方面的另一实现方式中,所述获取能够处理任务项的至少两个服务器的备用处理资源包括:获取所述至少两个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间中的至少一个,作为所述备用处理资源,所述对归一化值进行加权包括针对不同的备用处理资源分别设置对应的权重。

结合第一方面及其上述实现方式,在第一方面的另一实现方式中,所述基于所述至少两个服务器的备用处理资源和所述需求处理资源来选择用于运行所述任务项的目标服务器包括:对所述备用处理资源从高到低依次排序;将排序最前的服务器的备用处理资源与所述需求处理资源进行比较;在排序最前的服务器的备用处理资源大于所述需求处理资源时,将该排序最前的服务器作为所述目标服务器。

结合第一方面及其上述实现方式,在第一方面的另一实现方式中,所述获取能够处理任务项的至少两个服务器的备用处理资源包括:获取所述至少两个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间中的至少一个,作为所述备用处理资源。

第二方面,提供了一种服务器分配装置,包括:获取单元,获取能够处理任务项的至少两个服务器的备用处理资源;估计单元,估计待处理的任务项在运行时所使用的服务器的需求处理资源;以及选择单元,基于所述至少两个服务器的备用处理资源和所述需求处理资源来选择用于运行所述任务项的目标服务器。

结合第二方面,在第二方面的一种实现方式中,所述选择单元包括:第一比较部件,比较所述至少两个服务器中的每个服务器的备用处理资源和所述需求处理资源;以及第一选择部件,基于所述比较结果来选择所述目标服务器。

结合第二方面及其上述实现方式,在第二方面的另一实现方式中,如果服务器的备用处理资源小于所述需求处理资源,则所述第一选择部件不选择该服务器作为所述目标服务器,如果服务器的备用处理资源大于等于所述需求处理资源,则所述第一选择部件将该服务器作为备用服务器,所述第一选择部件从所述备用服务器中选择所述目标服务器。

结合第二方面及其上述实现方式,在第二方面的另一实现方式中,所述第一选择部件计算每个备用服务器的剩余服务资源,该剩余服务资源是该服务器运行所述任务项之后的剩余资源,从所述备用服务器中选择剩余服务资源最大的服务器作为目标服务器。

结合第二方面及其上述实现方式,在第二方面的另一实现方式中,在所述备用服务器的数量为至少两个的情况下,所述第一选择部件从所述备用服务器的备用处理资源减去所述需求处理资源,将所得的差进行归一化,对归一化值进行加权,选择加权值最大的备用服务器作为所述目标服务器。

结合第二方面及其上述实现方式,在第二方面的另一实现方式中,所述获取单元获取所述至少两个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间中的至少一个,作为所述备用处理资源,所述第一选择部件针对不同的备用处理资源分别设置对应的权重。

结合第二方面及其上述实现方式,在第二方面的另一实现方式中,所述选择单元包括:排序部件,对所述备用处理资源从高到低依次排序;第二比较部件,将排序最前的服务器的备用处理资源与所述需求处理资源进行比较;第二选择部件,在排序最前的服务器的备用处理资源大于所述需求处理资源时,将该排序最前的服务器作为所述目标服务器。

结合第二方面及其上述实现方式,在第二方面的另一实现方式中,所述获取单元获取所述至少两个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间中的至少一个,作为所述备用处理资源。

第三方面,提供了一种电子设备,可包括如上所述的服务器分配装置。

在根据本申请实施例的服务器分配方法、服务器分配装置以及电子设备的技术方案中,能够使得每个服务都能有足够的资源进行计算,集群内的服务器得到充分利用,从而达到对集群资源的最优化利用。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是示意性图示了本申请的实施例的应用场景的示意图;

图2是示意性图示了根据本申请实施例的服务器分配方法的流程图;

图3示意性图示了图2的服务器分配方法中的选择目标服务器的流程;

图4示意性图示了图2的服务器分配方法中的选择目标服务器的进一步的流程

图5示意性图示了图2的服务器分配方法中的选择目标服务器的另一个流程;

图6是示意性图示了根据本申请实施例的服务器分配装置的框图;

图7是示意性图示了根据本申请实施例的服务器分配装置的选择单元的框图;

图8是示意性图示了根据本申请实施例的服务器分配装置的选择单元的另一个框图;

图9是示意性图示了根据本申请实施例的另一服务器分配装置的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。

图1是示意性图示了本申请的实施例的应用场景的示意图。如图1所示,集群中,在一台管理器上连接有至少两个服务器,图中示出的是服务器11、服务器12、……服务器1n,其中,n是大于1的自然数。

这些服务器11、服务器12、……服务器1n只要是包括处理器、硬盘、内存、系统总线等,则并不特别限定其种类。并且,只要是在一台管理器上连接,则这些服务器可以位于同一个地点,也可以位于不同的地点。

对集群进行管理的管理器考虑连接到自己的服务器的处理能力和待处理的任务项使用服务器资源的预估值,向待处理的任务项自动分配服务器,从而使得每个服务器都得到充分的利用。

由于不需要部署人员根据经验手动调整将每个任务项分配到哪个服务器,所以这种方式尤其适合集群规模较大时。达到对集群资源的最优化利用。

图2是示意性图示了根据本申请实施例的服务器分配方法S2的流程图。

如图2所示,该服务器分配方法S2可包括:获取能够处理任务项的服务器11、服务器12、……服务器1n的备用处理资源(S21);估计待处理的任务项在运行时所使用的服务器的需求处理资源(S22);以及基于所述服务器11、服务器12、……服务器1n的备用处理资源和所述需求处理资源来选择用于运行所述任务项的目标服务器(S23)。

如上所述,这些服务器11、服务器12、……服务器1n可以位于同一个地点,也可以位于不同的地点。这里,备用处理资源是服务器能够提供处理资源的能力,可以是每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间等,但并不限定于此。需求处理资源是任务项在服务器中运行时需要使用的服务器的处理资源,可以是CPU使用量、内存使用量、网络使用量、硬盘使用量等,但并不限定于此。可以预先评估在每个待处理的任务项在运行或计算时需要使用的平均资源。

图3示意性图示了图2的服务器分配方法S2中的选择目标服务器的流程。

如图3所示,在S23中可如下地选择用于运行所述任务项的目标服务器:比较所述服务器11、服务器12、……服务器1n中的每个服务器的备用处理资源和所述需求处理资源(S231);以及基于所述比较结果来选择所述目标服务器(S232)。

这里,备用处理资源可以是每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间等,需求处理资源可以是CPU使用量、内存使用量、网络使用量、硬盘使用量等。

例如,在将备用处理资源设为每个服务器的CPU剩余量时,将需求处理资源设为CPU使用量,比较每个服务器的CPU剩余量和CPU使用量;在将备用处理资源设为每个服务器的可用内存时,将需求处理资源设为内存使用量,比较每个服务器的可用内存和内存使用量;在将备用处理资源设为每个服务器的网络未占用量时,将需求处理资源设为网络使用量,比较每个服务器的网络未占用量和网络使用量;在将备用处理资源设为每个服务器的硬盘的剩余存储空间时,将需求处理资源设为硬盘使用量,比较每个服务器的硬盘的剩余存储空间和硬盘使用量。

又例如,在将备用处理资源设为每个服务器的CPU剩余量和可用内存时,将需求处理资源设为CPU使用量和内存使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及可用内存和内存使用量;在将备用处理资源设为每个服务器的CPU剩余量和网络未占用量时,将需求处理资源设为CPU使用量和网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及网络未占用量和网络使用量;在将备用处理资源设为每个服务器的CPU剩余量和硬盘的剩余存储空间时,将需求处理资源设为CPU使用量和硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的可用内存和网络未占用量时,将需求处理资源设为内存使用量和网络使用量,在每个服务器中分别比较可用内存和内存使用量以及网络未占用量和网络使用量;在将备用处理资源设为每个服务器的可用内存和硬盘的剩余存储空间时,将需求处理资源设为内存使用量和硬盘使用量,在每个服务器中分别比较可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的网络未占用量和硬盘的剩余存储空间时,将需求处理资源设为网络使用量和硬盘使用量,在每个服务器中分别比较网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及网络未占用量时,将需求处理资源设为CPU使用量、内存使用量以及网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及网络未占用量和网络使用量;在将备用处理资源设为每个服务器的可用内存、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为内存使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较可用内存和内存使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的CPU剩余量、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量、网络使用量、网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量、网络未占用量和网络使用量、硬盘的剩余存储空间和硬盘使用量。

图4示意性图示了图2的服务器分配方法S2中的选择目标服务器的进一步的流程。

如图4所示,在S232中可如下地选择所述目标服务器:如果服务器的备用处理资源小于所述需求处理资源,则不选择该服务器作为所述目标服务器(S2321);如果服务器的备用处理资源大于等于所述需求处理资源,则将该服务器作为备用服务器(S2322);以及从所述备用服务器中选择所述目标服务器(S2323)。

这里,备用处理资源可以是每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间等,需求处理资源可以是CPU使用量、内存使用量、网络使用量、硬盘使用量等。

例如,在将备用处理资源设为每个服务器的CPU剩余量时,将需求处理资源设为CPU使用量,比较每个服务器的CPU剩余量和CPU使用量,若服务器的CPU剩余量小于CPU使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存时,将需求处理资源设为内存使用量,比较每个服务器的可用内存和内存使用量,若服务器的可用内存小于内存使用量,则不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的网络未占用量时,将需求处理资源设为网络使用量,比较每个服务器的网络未占用量和网络使用量,若服务器的网络未占用量小于网络使用量,则不选择该服务器作为目标服务器,若服务器的网络未占用量大于等于网络使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的硬盘的剩余存储空间时,将需求处理资源设为硬盘使用量,比较每个服务器的硬盘的剩余存储空间和硬盘使用量,若服务器的硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器。

又例如,在将备用处理资源设为每个服务器的CPU剩余量和可用内存时,将需求处理资源设为CPU使用量和内存使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及可用内存和内存使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于等于内存使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量和网络未占用量时,将需求处理资源设为CPU使用量和网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及网络未占用量和网络使用量,若服务器的CPU剩余量小于CPU使用量或者网络未占用量小于网络使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且网络未占用量大于等于网络使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量和硬盘的剩余存储空间时,将需求处理资源设为CPU使用量和硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存和网络未占用量时,将需求处理资源设为内存使用量和网络使用量,在每个服务器中分别比较可用内存和内存使用量以及网络未占用量和网络使用量,若服务器的可用内存小于内存使用量或者网络未占用量小于网络使用量,则不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量且网络未占用量大于等于网络使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存和硬盘的剩余存储空间时,将需求处理资源设为内存使用量和硬盘使用量,在每个服务器中分别比较可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的可用内存小于内存使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的网络未占用量和硬盘的剩余存储空间时,将需求处理资源设为网络使用量和硬盘使用量,在每个服务器中分别比较网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及网络未占用量时,将需求处理资源设为CPU使用量、内存使用量以及网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及网络未占用量和网络使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量或者网络未占用量小于网络使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于内存使用量且网络未占用量大于等于网络使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为内存使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较可用内存和内存使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的可用内存小于内存使用量或者网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量且网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于等于内存使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量、网络使用量、硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量、网络未占用量和网络使用量、硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量或者网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于等于内存使用量且网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则将该服务器作为备用服务器。

并且,在S2323中可如下地选择所述目标服务器:计算每个备用服务器的剩余服务资源,该剩余服务资源是该服务器运行所述任务项之后的剩余资源;以及从所述备用服务器中选择剩余服务资源最大的服务器作为目标服务器。

例如,在将备用处理资源设为每个服务器的CPU剩余量时,将需求处理资源设为CPU使用量,计算CPU剩余量大于等于CPU使用量的每个备用服务器的剩余服务资源也即(CPU剩余量-CPU使用量),从多个备用服务器中选择(CPU剩余量-CPU使用量)最大的服务器作为目标服务器;在将备用处理资源设为每个服务器的可用内存时,将需求处理资源设为内存使用量,计算可用内存大于等于内存使用量的每个备用服务器的剩余服务资源也即(可用内存-内存使用量),从多个备用服务器中选择(可用内存-内存使用量)最大的服务器作为目标服务器;在将备用处理资源设为每个服务器的网络未占用量时,将需求处理资源设为网络使用量,计算网络未占用量大于等于网络使用量的每个备用服务器的剩余服务资源也即(网络未占用量-网络使用量),从多个备用服务器中选择(网络未占用量-网络使用量)最大的服务器作为目标服务器;在将备用处理资源设为每个服务器的硬盘的剩余存储空间时,将需求处理资源设为硬盘使用量,计算硬盘的剩余存储空间大于等于硬盘使用量的每个备用服务器的剩余服务资源也即(硬盘的剩余存储空间-硬盘使用量),从多个备用服务器中选择(硬盘的剩余存储空间-硬盘使用量)最大的服务器作为目标服务器。

优选地,从服务器11、服务器12、……服务器1n的备用处理资源减去所述需求处理资源,将所得的差进行归一化,对归一化值进行加权,选择加权值最大的备用服务器作为所述目标服务器。

例如,对集群中的每个服务器的备用处理资源进行量化,并通过向量进行记录。这里,备用处理资源可包括每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间中的至少一个。如按CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间的顺序记录的向量(34.08,256,1000,2000),表示这台备用服务器具有34.08GHz的CPU剩余量,256G可用内存,1000Mbps的网卡,2000GB即2T的硬盘。然后,对每个任务项在运行或计算时使用的平均资源进行评估,并按相同维度的向量进行记录,如(2.13,16,0,1),表示此任务项在运行/计算时需要使用2.13GHz的CPU,16G内存,不使用网络资源,最多使用1GB的磁盘空间。

在为任务项分配服务器时,首先每个备用服务器的备用处理资源减去需求处理资源的差,假设备用服务器的备用处理资源为向量(C1,C2,…Cn),需求处理资源为向量(U1,U2,…Un),则差可表示为(C1-U1,C2-U2,…Cn-Un),这时如果出现负值,则表明此任务项不适合在这台备用服务器上执行。接着,对所得的差进行归一化((C1-U1)/C1,(C2-U2)/C2,…(Cn-Un)/Cn)。然后,与权重向量((k1,k2,…k4)进行乘积,这里的权重向量可以根据各维度的比重进行定义,但每一项的值都在大于零小于等于1之间。最后,选择加权值最大的备用服务器作为目标服务器。

图5示意性图示了图2的服务器分配方法S2中的选择目标服务器的另一个流程。

如图5所示,在S23中可如下地选择用于运行所述任务项的目标服务器:对备用处理资源从高到低依次排序(S233);将排序最前的服务器的备用处理资源与需求处理资源进行比较(S234);在排序最前的服务器的备用处理资源大于需求处理资源时,将该排序最前的服务器作为目标服务器(S235)。

例如,也可以先对服务器的备用处理资源从高到低依次排序,再从每个服务器的备用处理资源减去所述需求处理资源,将所得的差进行归一化,对归一化值进行加权,选择加权值最大的备用服务器作为所述目标服务器。

在根据本申请实施例的上述服务器分配方法的技术方案中,能够使得每个服务都能有足够的资源进行计算,即使是在集群规模较大时,集群内的服务器也得到充分利用,从而达到对集群资源的最优化利用。

图6是示意性图示了根据本申请实施例的服务器分配装置6的框图。

如图6所示,该服务器分配装置6可包括:获取单元61,获取能够处理任务项的至少两个服务器的备用处理资源;估计单元62,估计待处理的任务项在运行时所使用的服务器的需求处理资源;以及选择单元63,基于所述至少两个服务器的备用处理资源和所述需求处理资源来选择用于运行所述任务项的目标服务器。

这里,备用处理资源是服务器能够提供处理资源的能力,可以是每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间等,但并不限定于此。

需求处理资源是任务项在服务器中运行时需要使用的服务器的处理资源,可以是CPU使用量、内存使用量、网络使用量、硬盘使用量等,但并不限定于此。可以预先评估在每个待处理的任务项在运行或计算时需要使用的平均资源。

图7是示意性图示了根据本申请实施例的服务器分配装置6的选择单元63的框图。

如图7所示,选择单元63可进一步包括:第一比较部件631,比较所述至少两个服务器中的每个服务器的备用处理资源和所述需求处理资源;以及第一选择部件632,基于所述比较结果来选择所述目标服务器。

这里,备用处理资源可以是每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间等,需求处理资源可以是CPU使用量、内存使用量、网络使用量、硬盘使用量等。

例如,在将备用处理资源设为每个服务器的CPU剩余量时,将需求处理资源设为CPU使用量,比较每个服务器的CPU剩余量和CPU使用量;在将备用处理资源设为每个服务器的可用内存时,将需求处理资源设为内存使用量,比较每个服务器的可用内存和内存使用量;在将备用处理资源设为每个服务器的网络未占用量时,将需求处理资源设为网络使用量,比较每个服务器的网络未占用量和网络使用量;在将备用处理资源设为每个服务器的硬盘的剩余存储空间时,将需求处理资源设为硬盘使用量,比较每个服务器的硬盘的剩余存储空间和硬盘使用量。

又例如,在将备用处理资源设为每个服务器的CPU剩余量和可用内存时,将需求处理资源设为CPU使用量和内存使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及可用内存和内存使用量;在将备用处理资源设为每个服务器的CPU剩余量和网络未占用量时,将需求处理资源设为CPU使用量和网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及网络未占用量和网络使用量;在将备用处理资源设为每个服务器的CPU剩余量和硬盘的剩余存储空间时,将需求处理资源设为CPU使用量和硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的可用内存和网络未占用量时,将需求处理资源设为内存使用量和网络使用量,在每个服务器中分别比较可用内存和内存使用量以及网络未占用量和网络使用量;在将备用处理资源设为每个服务器的可用内存和硬盘的剩余存储空间时,将需求处理资源设为内存使用量和硬盘使用量,在每个服务器中分别比较可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的网络未占用量和硬盘的剩余存储空间时,将需求处理资源设为网络使用量和硬盘使用量,在每个服务器中分别比较网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及网络未占用量时,将需求处理资源设为CPU使用量、内存使用量以及网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及网络未占用量和网络使用量;在将备用处理资源设为每个服务器的可用内存、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为内存使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较可用内存和内存使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的CPU剩余量、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量;在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量、网络使用量、网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量、网络未占用量和网络使用量、硬盘的剩余存储空间和硬盘使用量。

如果服务器的备用处理资源小于需求处理资源,则第一选择部件632不选择该服务器作为目标服务器,如果服务器的备用处理资源大于等于需求处理资源,则第一选择部件632将该服务器作为备用服务器,第一选择部件632从备用服务器中选择目标服务器。

例如,在将备用处理资源设为每个服务器的CPU剩余量时,将需求处理资源设为CPU使用量,比较每个服务器的CPU剩余量和CPU使用量,若服务器的CPU剩余量小于CPU使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存时,将需求处理资源设为内存使用量,比较每个服务器的可用内存和内存使用量,若服务器的可用内存小于内存使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的网络未占用量时,将需求处理资源设为网络使用量,比较每个服务器的网络未占用量和网络使用量,若服务器的网络未占用量小于网络使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的网络未占用量大于等于网络使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的硬盘的剩余存储空间时,将需求处理资源设为硬盘使用量,比较每个服务器的硬盘的剩余存储空间和硬盘使用量,若服务器的硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器。

又例如,在将备用处理资源设为每个服务器的CPU剩余量和可用内存时,将需求处理资源设为CPU使用量和内存使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及可用内存和内存使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于等于内存使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量和网络未占用量时,将需求处理资源设为CPU使用量和网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及网络未占用量和网络使用量,若服务器的CPU剩余量小于CPU使用量或者网络未占用量小于网络使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且网络未占用量大于等于网络使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量和硬盘的剩余存储空间时,将需求处理资源设为CPU使用量和硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存和网络未占用量时,将需求处理资源设为内存使用量和网络使用量,在每个服务器中分别比较可用内存和内存使用量以及网络未占用量和网络使用量,若服务器的可用内存小于内存使用量或者网络未占用量小于网络使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量且网络未占用量大于等于网络使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存和硬盘的剩余存储空间时,将需求处理资源设为内存使用量和硬盘使用量,在每个服务器中分别比较可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的可用内存小于内存使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的网络未占用量和硬盘的剩余存储空间时,将需求处理资源设为网络使用量和硬盘使用量,在每个服务器中分别比较网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及网络未占用量时,将需求处理资源设为CPU使用量、内存使用量以及网络使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及网络未占用量和网络使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量或者网络未占用量小于网络使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于内存使用量且网络未占用量大于等于网络使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的可用内存、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为内存使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较可用内存和内存使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的可用内存小于内存使用量或者网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的可用内存大于等于内存使用量且网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量、网络未占用量以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、网络使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、网络未占用量和网络使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器;在将备用处理资源设为每个服务器的CPU剩余量、可用内存以及硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量以及硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量以及硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于等于内存使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器。

又例如,在将备用处理资源设为每个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间时,将需求处理资源设为CPU使用量、内存使用量、网络使用量、硬盘使用量,在每个服务器中分别比较CPU剩余量和CPU使用量、可用内存和内存使用量、网络未占用量和网络使用量、硬盘的剩余存储空间和硬盘使用量,若服务器的CPU剩余量小于CPU使用量或者可用内存小于内存使用量或者网络未占用量小于网络使用量或者硬盘的剩余存储空间小于硬盘使用量,则第一选择部件632不选择该服务器作为目标服务器,若服务器的CPU剩余量大于等于CPU使用量且可用内存大于等于内存使用量且网络未占用量大于等于网络使用量且硬盘的剩余存储空间大于等于硬盘使用量,则第一选择部件632将该服务器作为备用服务器。

进一步,第一选择部件632计算每个备用服务器的剩余服务资源,该剩余服务资源是该服务器运行任务项之后的剩余资源,从备用服务器中选择剩余服务资源最大的服务器作为目标服务器。

例如,在将备用处理资源设为每个服务器的CPU剩余量时,将需求处理资源设为CPU使用量,计算CPU剩余量大于等于CPU使用量的每个备用服务器的剩余服务资源也即(CPU剩余量-CPU使用量),从多个备用服务器中选择(CPU剩余量-CPU使用量)最大的服务器作为目标服务器;在将备用处理资源设为每个服务器的可用内存时,将需求处理资源设为内存使用量,计算可用内存大于等于内存使用量的每个备用服务器的剩余服务资源也即(可用内存-内存使用量),从多个备用服务器中选择(可用内存-内存使用量)最大的服务器作为目标服务器;在将备用处理资源设为每个服务器的网络未占用量时,将需求处理资源设为网络使用量,计算网络未占用量大于等于网络使用量的每个备用服务器的剩余服务资源也即(网络未占用量-网络使用量),从多个备用服务器中选择(网络未占用量-网络使用量)最大的服务器作为目标服务器;在将备用处理资源设为每个服务器的硬盘的剩余存储空间时,将需求处理资源设为硬盘使用量,计算硬盘的剩余存储空间大于等于硬盘使用量的每个备用服务器的剩余服务资源也即(硬盘的剩余存储空间-硬盘使用量),从多个备用服务器中选择(硬盘的剩余存储空间-硬盘使用量)最大的服务器作为目标服务器。

优选地,在备用服务器的数量为至少两个的情况下,第一选择部件632从备用服务器的备用处理资源减去需求处理资源,将所得的差进行归一化,对归一化值进行加权,选择加权值最大的备用服务器作为所述目标服务器。

获取单元61获取所述至少两个服务器的CPU剩余量、可用内存、网络未占用量、硬盘的剩余存储空间中的至少一个,作为所述备用处理资源,第一选择部件632针对不同的备用处理资源分别设置对应的权重。

图8是示意性图示了根据本申请实施例的服务器分配装置6的选择单元63的另一个框图。

如图8所示,选择单元63可进一步包括:排序部件633,对所述备用处理资源从高到低依次排序;第二比较部件,将排序最前的服务器的备用处理资源与所述需求处理资源进行比较;第二选择部件634,在排序最前的服务器的备用处理资源大于所述需求处理资源时,将该排序最前的服务器作为所述目标服务器。

例如,也可以先对服务器的备用处理资源从高到低依次排序,再从每个服务器的备用处理资源减去所述需求处理资源,将所得的差进行归一化,对归一化值进行加权,选择加权值最大的备用服务器作为所述目标服务器。

在根据本申请实施例的上述服务器分配装置的技术方案中,能够使得每个服务都能有足够的资源进行计算,即使是在集群规模较大时,集群内的服务器也得到充分利用,从而达到对集群资源的最优化利用。

图9是示意性图示了根据本申请另一实施例的服务器分配装置9的框图。该服务器分配装置9包括:存储器91,用于存储程序代码;处理器92,用于执行所述程序代码以实现结合图2-5描述的方法。

存储器91可以包括只读存储器和随机存取存储器中的至少一个,并向处理器92提供指令和数据。存储器91的一部分还可以包括非易失行随机存取存储器(NVRAM)。

处理器92可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者任何常规的处理器等。

结合本申请实施例所公开的方法的步骤可以直接体现为由处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器91中,处理器92读取存储器91中的信息,结合其硬件完成上述方法的步骤。

在上面结合图6-8公开了根据本申请实施例的服务器分配装置的情况下,所有包括所述服务器分配装置的电子设备也都处于本申请实施例的公开范围。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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