分布式作业分片分配方法和装置与流程

文档序号:12478342阅读:335来源:国知局
分布式作业分片分配方法和装置与流程

本发明涉及服务器资源分配技术领域,尤其涉及一种分布式作业分片分配方法和装置。



背景技术:

目前,在执行任务的过程中,一般会存在同一集群域内的服务器上作业分片分配不均匀的情况。例如,VLG域有3台服务器分别为node1、node2和node3,有3个作业分别为job1、job2、job3,其中,job1有1个分片,job2有2个分片,job3有2个分片。node1、node2、node3分别可以执行job1、job2、job3,依次启动node1、node2、node3时,在node1上面跑3个作业分片,在node1上面跑2个作业分片,在node3上面跑了0个作业分片,从而导致作业分片分配不均衡,即资源利用不均匀。另外,由于各个服务器之间并不知道其他服务器存在多少作业分片,因此当集群域内的服务器存在扩容或减容时,服务器上的作业分片是任意分配的,使得各个服务器上作业分片存在分配不均衡。



技术实现要素:

本发明的主要目的在于提供一种分布式作业分片分配方法和装置,旨在提高作业分片分配的均衡性。

为实现上述目的,本发明提供了一种分布式作业分片分配方法,包括:

接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;

侦测所述集群域内的服务器是否存在扩容或减容;

当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;或者,

当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。

可选地,所述根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上包括:

获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。

可选地,所述根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上包括:

获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。

可选地,所述根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上包括:

根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。

可选地,所述根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上包括:

获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;

当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。

此外,为实现上述目的,本发明还提供了一种分布式作业分片分配装置,包括:

设置模块,用于接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;

侦测模块,用于侦测所述集群域内的服务器是否存在扩容或减容;

扩容分配模块,用于当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;

减容分配模块,用于当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。

可选地,所述扩容分配模块还用于,获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。

可选地,扩容分配模块还用于,获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。

可选地,所述减容分配模块还用于,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。

可选地,所述减容分配模块还用于,获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。

本发明实施例提供的分布式作业分片分配方法和装置,通过为集群域内的各个服务器设定负载值,并当集群域内的服务器存在扩容时,根据获取服务器的第一负载值,按照自定义规则将指定负载的第一作业分片分配至扩容服务器上。或者,当集群域内的服务器存在减容时,根据获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值,将该第二作业分片按照指定规则分配至非减容服务器上。使得集群域内的各个服务器在执行任务的过程中,可根据设定负载值获知其他服务器的运行情况,对作业分片进行合理分配,提高了作业分片分配的均衡性。

附图说明

图1为本发明分布式作业分片分配方法一实施例的流程示意图;

图2为本发明分配前待分配列表内作业分片与各服务器包含的负载值示意图;

图3为本发明第一轮分配后待分配列表内作业分片与各服务器包含的负载值示意图;

图4为本发明第二轮分配后待分配列表内作业分片与各服务器包含的负载值示意图;

图5为本发明分布式作业分片分配装置一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,示出了本发明一种分布式作业分片分配方法第一实施例。该实施例的分布式作业分片分配方法包括:

步骤S10、接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;

本实施例中,分布式作业分片分配方法应用于集群域,该聚群域内各个服务器根据分配到的资源执行相应的任务。聚群域包括分布式作业分片分配装置,在同一集群域内可包括多个服务器,每个服务器可以执行不同的分布式作业分片。

为了能够获取聚群域内各个服务器的运行情况,首先需要为各个服务器设置负载值,该负载值用于指示服务器执行任务的多少,负载值越大,表示服务器执行任务的越多;负载值越小,表示服务器执行任务的越少。

用户可在指定的用户设置界面(即Saturn UI界面)内,根据实际需要为集群域内的各个服务器设定所需的负载值,在设定服务器的负载值后,该服务器上执行的每个作业分片对应的负载值均相同。例如,当某个服务器执行3个作业分片时,若该服务器设定的负载值为20,则每个作业分片的负载值均是20。

步骤S20、侦测所述集群域内的服务器是否存在扩容或减容;

本实施例中,扩容是指集群域内增加服务器,减容是指损坏或减少服务器,使得服务器无法执行作业分片。分布式作业分片分配装置实时或间隔预设时间侦测集群域内的服务器是否存在扩容或减容,当集群域内的服务器存在扩容或减容,需要摘掉需要重新分配的作业分片,对该作业分片进行重新分配。

步骤S30、当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;

当集群域内的服务器存在扩容时,获取集群域内服务器的负载值作为第一负载值,当集群域内包括一个服务器时,得到的第一负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第一负载值包括各个服务器对应的负载值。

得到第一负载值后,将按照自定义规则获取服务器上指定负载的第一作业分片。当集群域内包括一个服务器时,获取该服务器指定负载的第一作业分片,当集群域内包括多个服务器时,分别获取各个服务器上指定负载的第一作业分片。将得到的第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该第一作业分片,实现了为集群域内的其他服务器分担任务。

该自定义规则可根据具体情况而灵活设置,例如,自定义规则可设置为根据各个服务器的负载值大小,从负载值较大的服务器上获取较多的负载,而负载值较小的服务器上获取较少的负载,分配至扩容服务器上;或者,当存在n-1个服务器时,从各个服务器上获取1/n的负载分配至扩容服务器上,使得各个服务器上的负载均衡。

步骤S40、当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。

当集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,该第二作业分片可包括至少一个作业分片,并获取集群域内非减容服务器的负载值作为第二负载值。当集群域内包括一个服务器时,得到的第二负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第二负载值包括各个服务器对应的负载值。

得到第二负载值后,根据第二负载值按照指定规则将第二作业分片分配至非减容服务器上。该指定规则可根据具体情况而灵活设置,例如,指定规则可设置为将第二作业分片按照负载值从大到小,依次分配至第二负载值中负载值由小到大的各个服务器上,实现了为集群域内各个服务器上作业分片的均衡。

以下进行举例说明,在一实施例中,VLG域有2台服务器分别为node1和node2,node1和node2服务器设定的负载值分别为30和30,node1和node2服务器分别执行3个作业分片、3个作业分片。当集群域内增加了一台服务器node3时,从node1和node2服务器上获取负载值为30的1个作业分片,分配至node3服务器上,这样就实现了作业分片的均衡分配。

在另一实施例中,VLG域有3台服务器分别为node1、node2和node3,node1、node2和node3服务器设定的负载值分别为20、20和30,node1、node2和node3服务器分别执行2个作业分片、2个作业分片和1个作业分片。当集群域内损坏了一台服务器node1时,从node1服务器上获取负载值为20的2个作业分片,分别分配至node2和node3服务器上,这样就实现了作业分片的均衡分配。

本发明实施例通过为集群域内的各个服务器设定负载值,并当集群域内的服务器存在扩容时,根据获取服务器的第一负载值,按照自定义规则将指定负载的第一作业分片分配至扩容服务器上。或者,当集群域内的服务器存在减容时,根据获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值,将该第二作业分片按照指定规则分配至非减容服务器上。使得集群域内的各个服务器在执行任务的过程中,可根据设定负载值获知其他服务器的运行情况,对作业分片进行合理分配,提高了作业分片分配的均衡性。

进一步地,基于上述分布式作业分片分配方法第一实施例,提出了本发明分布式作业分片分配方法第二实施例,该实施例中上述步骤S30包括:获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。

本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,可通过获取集群域内非扩容服务器的个数n-1,根据个数n-1及第一负载值在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将该第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该作业分片,其中n≥2。例如,假设每个服务器的负载值均为1,当集群域内有5个服务器时,增加了一个服务器后,可从5个服务器中分别获取1/6的负载分配至扩容服务器上,使得6个服务器上均有5/6的负载。

进一步地,上述步骤S30还包括:获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。

本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,还可将集群域内所有非扩容服务器上总的第一作业分片,根据上述得到的第一负载值及集群域内非扩容服务器和扩容服务器的总数,对得到总的第一作业分片进行均分,将平均后的第一作业分片分配至各个非扩容服务器和扩容服务器上。例如,当集群域内有5个服务器时,增加了一个服务器后总共有6个服务器,可从原有的5个服务器中获取得到的总负载值为60,此时,可将为6个服务器中的每个服务器均分配的负载值为10。当前扩容服务器上作业分片的分配方式也可根据实际需要进行设置,并不限定本发明。

本实施例当集群域内的服务器存在扩容时,根据负载值为扩容服务器合理分配作业分片,不仅利用扩容服务器为集群域内的其他服务器分担任务,而且实现了集群域内各个服务器的作业分片分配均衡。

进一步地,基于上述分布式作业分片分配方法第一或第二实施例,提出了本发明分布式作业分片分配方法第三实施例,该实施例中上述步骤S40包括:根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。

本实施例中,当集群域内的服务器存在减容时,在获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值后,可设置待分配列表用于存储等待分配的作业分片,可将获取得到的第二作业分片按照负载值从大到小存储至待分配列表中。然后将分配列表中按照负载值从大到小排序的第二作业分片,依次分配至负载值由小到大的各个服务器上。

进一步地,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上的步骤包括:获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。

本实施例中,当待分配列表中的待分配的第二作业分片的个数,大于集群域内非减容服务器的个数时,可循环按照第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上的顺序,将第二作业分片进行分配。如图2所示,在对第二作业分配进行分配之前,待分配列表中存在负载值分别为30、30、20、20、10、10的作业分片,而在集群域内包括负载值分别为20、20、30的node1服务器、node2服务器和node3服务器。如图3所示,在进行第一轮分配时,首先将负载值较大的作业分片,即负载值从大到小为30、30、20的作业分片,依次分配至负载值由小到大的node1服务器、node2服务器和node3服务器上。如图4所示,由于待分配列表中的作业分片还没有分配完,因此需要进行第二轮分配。而在第一轮分配结束后,node1服务器、node2服务器和node3服务器的负载值均为50,此时将待分配列表中的负载值从大到小为20、10、10的作业分片,依次分配至各个服务器上,从而完成了作业分片的分配。

本实施例当集群域内的服务器存在减容时,将减容服务器上的第二作业分片按照负载值从大到小依次分配至负载值由小到大的各个服务器上,提高了作业分片分配的均衡性。

对应地,如图5所示,提出本发明一种分布式作业分片分配装置第一实施例。该实施例的分布式作业分片分配装置包括:

设置模块100,用于接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;

本实施例中,分布式作业分片分配装置应用于集群域,该聚群域内各个服务器根据分配到的资源执行相应的任务。在同一集群域内可包括多个服务器,每个服务器可以执行不同的分布式作业分片。

为了能够获取聚群域内各个服务器的运行情况,首先设置模块100需要为各个服务器设置负载值,该负载值用于指示服务器执行任务的多少,负载值越大,表示服务器执行任务的越多;负载值越小,表示服务器执行任务的越少。

用户可在指定的用户设置界面(即Saturn UI界面)内,根据实际需要为集群域内的各个服务器设定所需的负载值,以生成设置指令,设置模块100在接收到设置指令后,设定各个服务器的负载值。在设定服务器的负载值后,该服务器上执行的每个作业分片对应的负载值均相同。例如,当某个服务器执行3个作业分片时,若该服务器设定的负载值为20,则每个作业分片的负载值均是20。

侦测模块200,用于侦测所述集群域内的服务器是否存在扩容或减容;

本实施例中,扩容是指集群域内增加服务器,减容是指损坏或减少服务器,使得服务器无法执行作业分片。分布式作业分片分配装置调用侦测模块200实时或间隔预设时间侦测集群域内的服务器是否存在扩容或减容,当集群域内的服务器存在扩容或减容,需要摘掉需要重新分配的作业分片,对该作业分片进行重新分配。

扩容分配模块300,用于当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;

当集群域内的服务器存在扩容时,扩容分配模块300获取集群域内服务器的负载值作为第一负载值,当集群域内包括一个服务器时,得到的第一负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第一负载值包括各个服务器对应的负载值。

得到第一负载值后,扩容分配模块300将按照自定义规则获取服务器上指定负载的第一作业分片。当集群域内包括一个服务器时,获取该服务器指定负载的第一作业分片,当集群域内包括多个服务器时,分别获取各个服务器上指定负载的第一作业分片。将得到的第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该第一作业分片,实现了为集群域内的其他服务器分担任务。

该自定义规则可根据具体情况而灵活设置,例如,自定义规则可设置为根据各个服务器的负载值大小,从负载值较大的服务器上获取较多的负载,而负载值较小的服务器上获取较少的负载,分配至扩容服务器上;或者,当存在n-1个服务器时,从各个服务器上获取1/n的负载分配至扩容服务器上,使得各个服务器上的负载均衡。

减容分配模块400,用于当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。

当集群域内的服务器存在减容时,减容分配模块400获取减容对应的减容服务器所包含的第二作业分片,该第二作业分片可包括至少一个作业分片,并获取集群域内非减容服务器的负载值作为第二负载值。当集群域内包括一个服务器时,得到的第二负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第二负载值包括各个服务器对应的负载值。

得到第二负载值后,减容分配模块400根据第二负载值按照指定规则将第二作业分片分配至非减容服务器上。该指定规则可根据具体情况而灵活设置,例如,指定规则可设置为将第二作业分片按照负载值从大到小,依次分配至第二负载值中负载值由小到大的各个服务器上,实现了为集群域内各个服务器上作业分片的均衡。

以下进行举例说明,在一实施例中,VLG域有2台服务器分别为node1和node2,node1和node2服务器设定的负载值分别为30和30,node1和node2服务器分别执行3个作业分片、3个作业分片。当集群域内增加了一台服务器node3时,从node1和node2服务器上获取负载值为30的1个作业分片,分配至node3服务器上,这样就实现了作业分片的均衡分配。

在另一实施例中,VLG域有3台服务器分别为node1、node2和node3,node1、node2和node3服务器设定的负载值分别为20、20和30,node1、node2和node3服务器分别执行2个作业分片、2个作业分片和1个作业分片。当集群域内损坏了一台服务器node1时,从node1服务器上获取负载值为20的2个作业分片,分别分配至node2和node3服务器上,这样就实现了作业分片的均衡分配。

本发明实施例通过为集群域内的各个服务器设定负载值,并当集群域内的服务器存在扩容时,根据获取服务器的第一负载值,按照自定义规则将指定负载的第一作业分片分配至扩容服务器上。或者,当集群域内的服务器存在减容时,根据获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值,将该第二作业分片按照指定规则分配至非减容服务器上。使得集群域内的各个服务器在执行任务的过程中,可根据设定负载值获知其他服务器的运行情况,对作业分片进行合理分配,提高了作业分片分配的均衡性。

进一步地,基于上述分布式作业分片分配装置第一实施例,提出了本发明分布式作业分片分配装置第二实施例,该实施例中上述扩容分配模块300还用于,获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。

本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,扩容分配模块300可通过获取集群域内非扩容服务器的个数n-1,根据个数n-1及第一负载值在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将该第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该作业分片,其中n≥2。例如,假设每个服务器的负载值均为1,当集群域内有5个服务器时,增加了一个服务器后,可从5个服务器中分别获取1/6的负载分配至扩容服务器上,使得6个服务器上均有5/6的负载。

进一步地,扩容分配模块300还用于,获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。

本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,扩容分配模块300还可将集群域内所有非扩容服务器上总的第一作业分片,根据上述得到的第一负载值及集群域内非扩容服务器和扩容服务器的总数,对得到总的第一作业分片进行均分,将平均后的第一作业分片分配至各个非扩容服务器和扩容服务器上。例如,当集群域内有5个服务器时,增加了一个服务器后总共有6个服务器,可从原有的5个服务器中获取得到的总负载值为60,此时,可将为6个服务器中的每个服务器均分配的负载值为10。当前扩容服务器上作业分片的分配方式也可根据实际需要进行设置,并不限定本发明。

本实施例当集群域内的服务器存在扩容时,根据负载值为扩容服务器合理分配作业分片,不仅利用扩容服务器为集群域内的其他服务器分担任务,而且实现了集群域内各个服务器的作业分片分配均衡。

进一步地,基于上述分布式作业分片分配装置第一或第二实施例,提出了本发明分布式作业分片分配装置第三实施例,该实施例中上述减容分配模块400还用于,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。

本实施例中,当集群域内的服务器存在减容时,在获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值后,可设置待分配列表用于存储等待分配的作业分片,可将获取得到的第二作业分片按照负载值从大到小存储至待分配列表中。然后减容分配模块400将分配列表中按照负载值从大到小排序的第二作业分片,依次分配至负载值由小到大的各个服务器上。

进一步地,减容分配模块400还用于,获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。

本实施例中,当待分配列表中的待分配的第二作业分片的个数,大于集群域内非减容服务器的个数时,减容分配模块400可循环按照第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上的顺序,将第二作业分片进行分配。如图2所示,在对第二作业分配进行分配之前,待分配列表中存在负载值分别为30、30、20、20、10、10的作业分片,而在集群域内包括负载值分别为20、20、30的node1服务器、node2服务器和node3服务器。如图3所示,在进行第一轮分配时,首先将负载值较大的作业分片,即负载值从大到小为30、30、20的作业分片,依次分配至负载值由小到大的node1服务器、node2服务器和node3服务器上。如图4所示,由于待分配列表中的作业分片还没有分配完,因此需要进行第二轮分配。而在第一轮分配结束后,node1服务器、node2服务器和node3服务器的负载值均为50,此时将待分配列表中的负载值从大到小为20、10、10的作业分片,依次分配至各个服务器上,从而完成了作业分片的分配。

本实施例当集群域内的服务器存在减容时,将减容服务器上的第二作业分片按照负载值从大到小依次分配至负载值由小到大的各个服务器上,提高了作业分片分配的均衡性。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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