CN109936606A - 任务分配方法和装置 - Google Patents
任务分配方法和装置 Download PDFInfo
- Publication number
- CN109936606A CN109936606A CN201711364318.8A CN201711364318A CN109936606A CN 109936606 A CN109936606 A CN 109936606A CN 201711364318 A CN201711364318 A CN 201711364318A CN 109936606 A CN109936606 A CN 109936606A
- Authority
- CN
- China
- Prior art keywords
- node server
- task
- load
- server
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例提供一种任务分配方法和装置,该方法包括判断接收到的任务的负载值与各所述节点服务器的剩余处理能力以及所述分布式服务器集群的总剩余处理能力之间的关系;若所述任务的负载值大于各所述节点服务器的剩余处理能力,小于等于所述分布式服务器集群的总剩余处理能力,则采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配;判断重新分配任务负载后的各所述节点服务器中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器,则将所述任务下发给该节点服务器。本发明实施例能够提高分布式服务器集群的资源利用率,实现各节点服务器上的负载均衡。
Description
技术领域
本发明涉及负载均衡技术领域,具体而言,涉及一种任务分配方法和装置。
背景技术
现有的基于响应速度或最小网络连接数等实现任务分配的负载均衡方法具有突发性和不稳定性,并不适用于数据流量稳定的分布式服务器集群,如数据分析型分布式服务器集群等。
发明内容
有鉴于此,本发明实施例的目的在于提供一种任务分配方法和装置,以改善上述问题。
本发明较佳实施例提供了一种任务分配方法,应用于管理服务器,所述管理服务器与多个节点服务器构成分布式服务器集群,所述方法包括:
判断接收到的任务的负载值与各所述节点服务器的剩余处理能力以及所述分布式服务器集群的总剩余处理能力之间的关系;
若所述任务的负载值大于各所述节点服务器的剩余处理能力,小于等于所述分布式服务器集群的总剩余处理能力,则采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配;
判断重新分配任务负载后的各所述节点服务器中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器,则将所述任务下发给该节点服务器。
进一步地,采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配的步骤,包括:
从各所述节点服务器中选取存在剩余处理能力的节点服务器,构成节点服务器集;
按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配。
进一步地,所述节点服务器集中的各节点服务器执行的任务为多个,各节点服务器的最大处理能力为多个任务分别对应的负载值的公倍数,所述按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配的步骤,包括:
基于所述节点服务器集中的节点服务器,将负载值相等的任务分配至同一节点服务器,直到该节点服务器达到负载饱和。
进一步地,所述按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配的步骤,包括:
基于所述节点服务器集中的节点服务器,按照最重负载优先分配策略或/和最轻负载优先分配策略将其他节点服务器上的任务负载分配至该节点服务器直到该节点服务器的负载值达到最大值。
进一步地,所述方法还包括:
若剩余处理能力大于或等于所述任务的负载值的节点服务器为多个,则从该多个节点服务器中选取任务负载最轻的节点服务器,并将所述任务下发给任务负载最轻的节点服务器。
进一步地,所述任务负载最轻的节点服务器的剩余负载值φ满足以下条件:
φ=max{n*ω-(x0*α+y0*β+…+z0*γ),n*ω-(x1*α+y1*β+…+z1*γ),……n*ω-(xi*α+yi*β+…+zi*γ)}
其中,xi、yi、zi为各节点服务器中运行的不同任务的数量,α、β、γ为不同任务占用的节点服务器的资源消耗值,n*ω为每个节点服务器上能够运行的最大负载值。
进一步地,所述管理服务器中保存有负载信息列表,该负载信息列表中包含各节点服务器的负载信息,所述方法还包括:
接收各所述节点服务器在接收到新的任务后或完成任务运行后反馈的自身负载信息,并根据所述自身负载信息对所述负载信息列表进行更新。
本发明实施例还提供一种任务分配装置,应用于管理服务器,所述管理服务器与多个节点服务器构成分布式服务器集群,所述装置包括:
关系判断模块,用于判断接收到的任务的负载值与各所述节点服务器的剩余处理能力以及所述分布式服务器集群的总剩余处理能力之间的关系;
负载分配模块,用于若所述任务的负载值大于各所述节点服务器的剩余处理能力,小于等于所述分布式服务器集群的总剩余处理能力,则采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配;
任务下发模块,用于判断重新分配任务负载后的各所述节点服务器中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器,则将所述任务下发给该节点服务器。
进一步地,所述负载分配模块包括:
服务器选取单元,用于从各所述节点服务器中选取存在剩余处理能力的节点服务器,构成节点服务器集
负载分配单元,用于按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配。
进一步地,所述负载分配单元还用于基于所述节点服务器集中的节点服务器,将负载值相等的任务分配至同一节点服务器直到该节点服务器达到负载饱和。
与现有技术相比,本发明实施例提供一种任务分配方法和装置,其中,该方法基于贪心算法对分布式服务器集群中的各节点服务器上运行的任务负载进行重分配,能够实现各节点服务器上的负载均衡,提高分布式服务器集群的资源利用率,且本发明实现简单。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的分布式服务器集群中各服务器的交互场景示意图。
图2为图1中所示的管理服务器的方框结构示意图。
图3为本发明实施例提供的任务分配方法的流程示意图。
图4为图3中所示的步骤S202的子流程示意图。
图5为本发明实施例提供的任务分配装置的方框结构示意图。
图6为图5中所示的负载分配模块的方框结构示意图。
图标:10-分布式服务器集群;20-管理服务器;200-任务分配装置;201-关系判断模块;202-负载分配模块;2020-服务器选取单元;2021-负载分配单元;203-任务下发模块;204-负载更新模块;210-存储器;220-存储控制器;230-处理器;30-节点服务器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,为本发明实施例提供的分布式服务器集群10中各服务器的交互场景示意图,该分布式服务器集群10包括管理服务器20和多个节点服务器30。其中,各所述节点服务器30的类型在此不做限制,如所述节点服务器30可以是数据分析型服务器,也可以是网站型服务器等。其中,各所述节点服务器30与所述管理服务器20之间通过网络实现通信连接,且各节点服务器30之间也能够实现任务负载的迁移。
可选地,如图2所示,为应用本发明实施例提供的所述任务分配方法和装置的管理服务器20的方框结构示意图,该管理服务器20包括任务分配装置200、存储器210、存储控制器220以及处理器230。其中,所述存储器210、存储控制器220和处理器230各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件之间通过一条或多条通讯总线或信号线实现电性连接。所述任务分配装置200包括至少一个可以软件或固件的形式存储于所述存储器210中或固化在所述管理服务器20的操作系统中的软件功能模块。所述处理器230在所述存储控制器220的控制下访问所述存储器210,以用于执行所述存储器210中存储的可执行模块,例如所述任务分配装置200所包括的软件功能模块及计算机程序等,进而实现本发明实施例中的配置方法。可选地,所述管理服务器20可以是,但不限于智能手机、I PAD、电脑等。
应当理解,图2所示的结构仅为示意。所述管理服务器20可以具有比图2所示更多或者更少的组件,或者具有与图2所示不同的配置。其中,图2所示的各组件可以由软件、硬件或者其组合实现。
进一步地,如图3所示,是本发明较佳实施例提供的任务分配方法的流程示意图,所述任务分配方法应用于图2中所示的管理服务器20。下面结合图3对所述任务分配方法的具体流程及步骤进行详细阐述。
步骤S201,判断接收到的任务的负载值与各所述节点服务器30的剩余处理能力以及所述分布式服务器集群10的总剩余处理能力之间的关系。
其中,所述任务根据实际需求的不同可以有多种类型,例如,所述任务可以是数据分析、处理任务或数据存储任务等,本实施例在此不做限制。可以理解的是,所述任务的负载值是指节点服务器30在执行该任务时的资源消耗值。
进一步地,所述任务的负载值与各所述节点服务器30的剩余处理能力以及所述分布式服务器集群10的总剩余处理能力之间的关系可以为多种,且不同关系对应的任务分配方法也不相同。
例如,当各所述节点服务器30中存在剩余处理能力大于所述任务的负载值的节点服务器30,那么可直接从各所述节点服务器30中选取任务负载最轻的节点服务器30,并将所述任务下发给该任务负载最轻的节点服务器30执行。
本实施例中,所述任务负载最轻的节点服务器30的剩余负载值φ满足公式φ=max{n*ω-(x0*α+y0*β+…+z0*γ),n*ω-(x1*α+y1*β+…+z1*γ),……n*ω-(xi*α+yi*β+…+zi *γ)},其中,xi、yi、zi为各节点服务器30中运行的不同任务的数量,α、β、γ为不同任务占用的节点服务器30的资源消耗值,n*ω为每个节点服务器30上能够运行的最大负载值。
又例如,各所述节点服务器30的剩余处理能力以及所述分布式服务器集群10的总剩余处理能力均小于所述任务的负载值,则说明当前所述分布式服务器集群10不具备对该任务进行处理的能力。
又例如,所述任务的负载值大于各所述节点服务器30的剩余处理能力,小于等于所述分布式服务器集群10的总剩余处理能力,但由于针对任意一个节点服务器30,其剩余处理能力小于所述任务的负载值时会无法负载所述任务。对此,如步骤S202中所述,可通过对各所述节点服务器30中正在执行的任务负载进行重新分配以实现对所述任务的分配,具体如下。
步骤S202,若所述任务的负载值大于各所述节点服务器30的剩余处理能力,小于等于所述分布式服务器集群10的总剩余处理能力,则采用贪心算法对各所述节点服务器30中正在执行的任务负载进行重新分配。
如图4所示,下面将通过步骤S2020和步骤S2021对所述采用贪心算法对各所述节点服务器30中正在执行的任务负载进行重新分配的过程进行描述。
步骤S2020,从各节点服务器30中选取存在剩余处理能力的节点服务器30,构成节点服务器集。
其中,为了尽可能降低任务负载重新分配过程中的数据处理量,提高分配效率,本实施例中,可仅在还存在剩余处理能力的各节点服务器30之间进行任务负载的重新分配和任务迁移。
步骤S2021,按照贪心算法对所述节点服务器集中的各所述节点服务器30正在执行的任务负载进行重新分配。
本实施例中,所述贪心算法根据实际需求的不同可有多种不同的实现形式,但各实现形式的目的均是尽可能使所述节点服务器集中的部分节点服务器30的任务负载达到饱和,另一部分节点服务器30闲置出足够的剩余处理能力去接收新的任务并执行。下面结合具体实例进行说明。
例如,基于所述节点服务器集中的节点服务器30,所述贪心算法可以是按照最重负载优先分配策略或/和最轻负载优先分配策略将其他节点服务器30上的任务负载分配至该节点服务器30直到该节点服务器30的负载值达到最大值。应理解,所述节点服务器30的负载值达到最大值可以是指该节点服务器30的剩余处理能力为零,即负载饱和状态;也可以是指经过多种不同的贪心算法进行分配后得到若干种任务负载分配方式,选取其中负载值最大的分配方式对该节点服务器30进行任务负载分配,即可认为所述节点服务器30的负载值达到最大值。另外,所述最重负载优先分配策略与所述最轻负载优先分配策略的实现过程类似,下面以最重负载优先分配策略为例对任务负载的重新分配过程进行说明。
如,针对所述节点服务器集中的一任意节点服务器30,假设该节点服务器30的剩余处理能力为Δ,其他节点服务器30中待分配的任务负载包括A、B、C和D,且各任务负载对应的负载值为2、5、1和6,那么按照最重负载优先分配策略可先对任务负载D进行分配,并将该任务负载D的负载值6与节点服务器30的剩余处理能力Δ进行匹配,若Δ≥6,则该节点服务器30接受该任务负载D并对Δ进行更新得到Δ/;反之,则放弃该任务负载D,并从A、B、C中选取最重负载进行分配,并多次重复上述过程,直到所述节点服务器30不能处理任何一个待处理任务为止,即可认为该节点服务器30已经达到最大负载。
应理解,除上述单独采用最重负载优先分配策略或单独采用所述最轻负载优先分配策略进行任务负载的重新分配外,在实际实施时,还可同时采用最重负载优先分配策略和所述最轻负载优先分配策略进行任务负载的重新分配,本实施例在此不再赘述。
又例如,所述节点服务器集中的各节点服务器30执行的任务为多个,各节点服务器30的最大处理能力为多个任务分别对应的负载值的公倍数,那么,基于所述节点服务器集中的节点服务器30,所述贪心算法还可以将负载值相等的任务分配至同一节点服务器30,直到该节点服务器30达到负载饱和。
如,假设所述节点服务器集中包括三个节点服务器30,每个节点服务器30的处理能力为12,有负载值分别为3、4、6的A、B和C三种任务,其中,每个节点服务器30的处理能力满足各任务的负载值的公倍数条件。那么,当管理服务器20先后接收到用户下发的负载为3、3、3、3、4、4、4、3、6的任务,可有如下表1所示的各节点服务器30进行任务接收的过程。
表1
由表1可以看出,在下发第9个任务时,单个节点服务器10的最大剩余处理能力为2,不足以处理负载值为6的任务,但分布式服务器集群10总的剩余处理载能力2+2+2=6。因此,可将负载值都为3或者都为4的任务负载分配至同一节点服务器30(如节点服务器2和节点服务器3),直到该节点服务器30达到负载饱和状态,即该节点服务器30的剩余处理能力为零,同时使得其他节点服务器30拥有足够的剩余处理能力去接收负载值为6的任务。
在此,由于各节点服务器30的最大处理能力为各任务的负载值的公倍数,从而能够有效保证在向节点服务器30下发单一类型的任务时,若节点服务器30达到负载饱和,则该节点服务器30的剩余处理能力为0,因此,假设按照负载值的大小将各任务负载分为X、Y和Z三类,且各任务负载分别对应的负载值为α、β和γ,那么对于达到负载饱和的节点服务器30则有:其中,p、q、u均为大于或等于0的整数,p、q、u分别代表节点服务器30中正在运行的任务负载X、Y和Z的数量。换言之,对于所述节点服务器集中的各节点服务器30在进行任务负载重新分配时,可直接按照公式进行任务负载的重新分配,若某个节点服务器30达到负载饱和状态,则会有xiα+yi*β+zi*γ=n*ω,且存在xi=p,yi=0,zi=0或xi=0,yi=q,zi=0或xi=0,yi=0,zi=u。与此同时,必然会有另一个节点服务器30的剩余处理能力大于任务负载调整前的剩余处理能力,以用于接收并执行管理服务器20下发的新的任务。
在此应理解,本实施例中给出的贪心算法可以是但不限于上述的几种实现形式。
步骤S203,判断重新分配任务负载后的各所述节点服务器30中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器30,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器30,则将所述任务下发给该节点服务器30。
其中,在经过任务负载的重新分配后,若剩余处理能力大于或等于所述任务负载值的节点服务器30只有一个,则直接将所述任务下发给该节点服务器30即可;但若剩余处理能力大于或等于所述任务的负载值的节点服务器30为多个,则从该多个节点服务器30中选取任务负载最轻的节点服务器30,并将所述任务下发给任务负载最轻的节点服务器30运行。
具体地,请再次参阅表1,当下发第3个任务时,由于节点服务器30当前的剩余处理能力为12,其他服务器的剩余处理能力均为9,因此,该节点服务器30的当前任务负载最轻,可将第3个任务下发至节点服务器30。此外,若有多个任务负载最轻的节点服务器30时,则可按预先设置的编号顺序等进行下发即可。
进一步地,在本实施例中,若经过一次或多次的任务负载的重新分配后,依旧不存在剩余处理能力大于或等于所述任务的负载值的节点服务器30,则说明所述分布式服务器集群10不具备处理该任务的能力,则需返回对应提示信息或将该任务转发至其他分布式服务器集群10进行处理。本实施例在此不做限制。
步骤S204,接收各所述节点服务器30在接收到新的任务后或完成任务运行后反馈的自身负载信息,并根据所述自身负载信息对所述负载信息列表进行更新。
其中,所述管理服务器20中保存有负载信息列表,该负载信息列表中包含各节点服务器30的负载信息,所述管理服务器20可通过所述负载信息列表实现对各节点服务器30当前的负载情况进行管理和监控,以及选取具有合适剩余处理能力的节点服务器30进行任务下发等。
可选地,所述节点服务器30反馈自身负载信息给所述管理服务器20的方式有多种,例如,可按照预设时间间隔定期反馈,也可在自身的处理能力发生变化时进行实时反馈等。
具体地,在本实施例中,所述节点服务器30可通过反馈保活信息的方式进行自身负载信息的反馈,同时所述管理服务器20还可根据所述保活信息判断自身与各节点服务器30之间的网络连接是否正常。其中,除所述节点服务器30接收到新的任务后或完成任务运行后通过保活信息进行自身信息的实时反馈之外,所述保活信息还可以是由各节点服务器30按照固定时间间隔发送给所述管理服务器20。
实际实施时,当所述管理服务器20未收到某个节点服务器30发送的保活信息时,可从所述负载信息列表中删除该节点服务器30的负载信息,直到再次收到所述节点服务器30发送的保活信息时,将其对应的负载信息在所述负载信息列表中恢复。
进一步地,如图5所示,为本发明实施例提供的任务分配装置200的方框结构示意图,所述任务分配装置200包括关系判断模块201、负载分配模块202、任务下发模块203、负载更新模块204。
所述关系判断模块201,用于判断接收到的任务的负载值与各所述节点服务器30的剩余处理能力以及所述分布式服务器集群10的总剩余处理能力之间的关系。本实施例中,关于所述关系判断模块201的描述具体可参考上述步骤S201的详细描述,也即,所述步骤S201可以由关系判断模块201执行,因而在此不作更多说明。
所述负载分配模块202,用于若所述任务的负载值大于各所述节点服务器30的剩余处理能力,小于等于所述分布式服务器集群10的总剩余处理能力,则采用贪心算法对各所述节点服务器30中正在执行的任务负载进行重新分配。本实施例中,关于所述负载分配模块202的描述具体可参考上述步骤S202的详细描述,也即,所述步骤S202可以由负载分配模块202执行,因而在此不作更多说明。可选地,如图6所示,所述负载分配模块202还包括服务器选取单元2020和负载分配单元2021。
所述服务器选取单元2020,用于从各节点服务器30中选取存在剩余处理能力的节点服务器30,构成节点服务器集。本实施例中,关于所述服务器选取单元2020的描述具体可参考上述步骤S2020的详细描述,也即,所述步骤S2020可以由服务器选取单元2020执行,因而在此不作更多说明。
所述负载分配单元2021,用于按照贪心算法对所述节点服务器集中的各所述节点服务器30正在执行的任务负载进行重新分配。本实施例中,关于所述负载分配单元2021的描述具体可参考上述步骤S2021的详细描述,也即,所述步骤S2021可以由负载分配单元2021执行,因而在此不作更多说明。
所述任务下发模块203,用于判断重新分配任务负载后的各所述节点服务器30中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器30,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器30,则将所述任务下发给该节点服务器30。本实施例中,关于所述任务下发模块203的描述具体可参考上述步骤S203的详细描述,也即,所述步骤S203可以由任务下发模块203执行,因而在此不作更多说明。
所述负载更新模块204,用于接收各所述节点服务器30在接收到新的任务后或完成任务运行后反馈的自身负载信息,并根据所述自身负载信息对所述负载信息列表进行更新。本实施例中,关于所述负载更新模块204的描述具体可参考上述步骤S204的详细描述,也即,所述步骤S204可以由负载更新模块204执行,因而在此不作更多说明。
综上所述,本发明实施例提供一种任务分配方法和装置,其中,该方法基于贪心算法对分布式服务器集群10中的各节点服务器30上运行的任务负载进行重分配,能够实现各节点服务器30上的负载均衡,提高分布式服务器集群10的资源利用率,且本发明实现简单。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种任务分配方法,应用于管理服务器,所述管理服务器与多个节点服务器构成分布式服务器集群,其特征在于,所述方法包括:
判断接收到的任务的负载值与各所述节点服务器的剩余处理能力以及所述分布式服务器集群的总剩余处理能力之间的关系;
若所述任务的负载值大于各所述节点服务器的剩余处理能力,小于等于所述分布式服务器集群的总剩余处理能力,则采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配;
判断重新分配任务负载后的各所述节点服务器中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器,则将所述任务下发给该节点服务器。
2.根据权利要求1所述的任务分配方法,其特征在于,采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配的步骤,包括:
从各所述节点服务器中选取存在剩余处理能力的节点服务器,构成节点服务器集;
按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配。
3.根据权利要求2所述的任务分配方法,其特征在于,所述节点服务器集中的各节点服务器执行的任务为多个,各节点服务器的最大处理能力为多个任务分别对应的负载值的公倍数,所述按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配的步骤,包括:
基于所述节点服务器集中的节点服务器,将负载值相等的任务分配至同一节点服务器,直到该节点服务器达到负载饱和。
4.根据权利要求2所述的任务分配方法,其特征在于,所述按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配的步骤,包括:
基于所述节点服务器集中的节点服务器,按照最重负载优先分配策略或/和最轻负载优先分配策略将其他节点服务器上的任务负载分配至该节点服务器直到该节点服务器的负载值达到最大值。
5.根据权利要求1所述的任务分配方法,其特征在于,所述方法还包括:
若剩余处理能力大于或等于所述任务的负载值的节点服务器为多个,则从该多个节点服务器中选取任务负载最轻的节点服务器,并将所述任务下发给任务负载最轻的节点服务器。
6.根据权利要求5所述的任务分配方法,其特征在于,所述任务负载最轻的节点服务器的剩余负载值φ满足以下条件:
φ=max{n*ω-(x0*α+y0*β+…+z0*γ),n*ω-(x1*α+y1*β+…+z1*γ),……n*ω-(xi*α+yi*β+…+zi*γ)}
其中,xi、yi、zi为各节点服务器中运行的不同任务的数量,α、β、γ为不同任务占用的节点服务器的资源消耗值,n*ω为每个节点服务器上能够运行的最大负载值。
7.根据权利要求1所述的任务分配方法,其特征在于,所述管理服务器中保存有负载信息列表,该负载信息列表中包含各节点服务器的负载信息,所述方法还包括:
接收各所述节点服务器在接收到新的任务后或完成任务运行后反馈的自身负载信息,并根据所述自身负载信息对所述负载信息列表进行更新。
8.一种任务分配装置,应用于管理服务器,所述管理服务器与多个节点服务器构成分布式服务器集群,其特征在于,所述装置包括:
关系判断模块,用于判断接收到的任务的负载值与各所述节点服务器的剩余处理能力以及所述分布式服务器集群的总剩余处理能力之间的关系;
负载分配模块,用于若所述任务的负载值大于各所述节点服务器的剩余处理能力,小于等于所述分布式服务器集群的总剩余处理能力,则采用贪心算法对各所述节点服务器中正在执行的任务负载进行重新分配;
任务下发模块,用于判断重新分配任务负载后的各所述节点服务器中是否存在剩余处理能力大于或等于所述任务的负载值的节点服务器,若存在剩余处理能力大于或等于所述任务的负载值的节点服务器,则将所述任务下发给该节点服务器。
9.根据权利要求8所述的任务分配装置,其特征在于,所述负载分配模块包括:
服务器选取单元,用于从各所述节点服务器中选取存在剩余处理能力的节点服务器,构成节点服务器集
负载分配单元,用于按照贪心算法对所述节点服务器集中的各所述节点服务器正在执行的任务负载进行重新分配。
10.根据权利要求8所述的任务分配装置,其特征在于,所述负载分配单元还用于基于所述节点服务器集中的节点服务器,将负载值相等的任务分配至同一节点服务器直到该节点服务器达到负载饱和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711364318.8A CN109936606A (zh) | 2017-12-18 | 2017-12-18 | 任务分配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711364318.8A CN109936606A (zh) | 2017-12-18 | 2017-12-18 | 任务分配方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109936606A true CN109936606A (zh) | 2019-06-25 |
Family
ID=66982478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711364318.8A Pending CN109936606A (zh) | 2017-12-18 | 2017-12-18 | 任务分配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936606A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110650358A (zh) * | 2019-09-30 | 2020-01-03 | 北京奇艺世纪科技有限公司 | 一种节点分配的方法、装置、节点分配服务器及介质 |
CN110795250A (zh) * | 2019-10-30 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 负载调度方法、装置、设备及存储介质 |
CN110995802A (zh) * | 2019-11-22 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 任务的处理方法和装置、存储介质及电子装置 |
CN111158899A (zh) * | 2019-12-02 | 2020-05-15 | 南京星邺汇捷网络科技有限公司 | 一种数据的采集方法、采集器、任务管理中心以及系统 |
CN112395058A (zh) * | 2020-11-13 | 2021-02-23 | 北京数码视讯技术有限公司 | 任务调控装置、方法和系统 |
CN112398892A (zh) * | 2019-08-19 | 2021-02-23 | 浙江宇视科技有限公司 | 服务分配方法、装置及设备 |
WO2021056909A1 (zh) * | 2019-09-27 | 2021-04-01 | 广东浪潮大数据研究有限公司 | 一种基于资源管理平台的任务分配方法及系统 |
CN113687950A (zh) * | 2021-08-31 | 2021-11-23 | 平安医疗健康管理股份有限公司 | 基于优先级的任务分配方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004084069A2 (en) * | 2003-03-20 | 2004-09-30 | Sony Computer Entertainment Inc. | Load balancing and taskdistribution system |
CN101753936A (zh) * | 2008-12-08 | 2010-06-23 | 北京中星微电子有限公司 | 一种视频监控系统的存储空间的配置方法和视频服务器 |
CN102232282A (zh) * | 2010-10-29 | 2011-11-02 | 华为技术有限公司 | 一种实现数据中心资源负载均衡的方法及装置 |
CN103401947A (zh) * | 2013-08-20 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 多个服务器的任务分配方法和装置 |
CN104809539A (zh) * | 2014-01-29 | 2015-07-29 | 宏碁股份有限公司 | 数据中心服务器资源的动态规划方法 |
CN105491138A (zh) * | 2015-12-15 | 2016-04-13 | 国网智能电网研究院 | 一种基于负载率分级触发的分布式负载调度方法 |
CN107480254A (zh) * | 2017-08-14 | 2017-12-15 | 上海交通大学 | 适用于分布式内存数据库的在线负载均衡方法 |
-
2017
- 2017-12-18 CN CN201711364318.8A patent/CN109936606A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004084069A2 (en) * | 2003-03-20 | 2004-09-30 | Sony Computer Entertainment Inc. | Load balancing and taskdistribution system |
CN101753936A (zh) * | 2008-12-08 | 2010-06-23 | 北京中星微电子有限公司 | 一种视频监控系统的存储空间的配置方法和视频服务器 |
CN102232282A (zh) * | 2010-10-29 | 2011-11-02 | 华为技术有限公司 | 一种实现数据中心资源负载均衡的方法及装置 |
CN103401947A (zh) * | 2013-08-20 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 多个服务器的任务分配方法和装置 |
CN104809539A (zh) * | 2014-01-29 | 2015-07-29 | 宏碁股份有限公司 | 数据中心服务器资源的动态规划方法 |
CN105491138A (zh) * | 2015-12-15 | 2016-04-13 | 国网智能电网研究院 | 一种基于负载率分级触发的分布式负载调度方法 |
CN107480254A (zh) * | 2017-08-14 | 2017-12-15 | 上海交通大学 | 适用于分布式内存数据库的在线负载均衡方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398892A (zh) * | 2019-08-19 | 2021-02-23 | 浙江宇视科技有限公司 | 服务分配方法、装置及设备 |
CN112398892B (zh) * | 2019-08-19 | 2023-06-20 | 浙江宇视科技有限公司 | 服务分配方法、装置及设备 |
WO2021056909A1 (zh) * | 2019-09-27 | 2021-04-01 | 广东浪潮大数据研究有限公司 | 一种基于资源管理平台的任务分配方法及系统 |
US11822969B2 (en) | 2019-09-27 | 2023-11-21 | Guangdong Inspur Smart Computing Technology Co., Ltd. | Resource management platform-based task allocation method and system |
CN110650358A (zh) * | 2019-09-30 | 2020-01-03 | 北京奇艺世纪科技有限公司 | 一种节点分配的方法、装置、节点分配服务器及介质 |
CN110650358B (zh) * | 2019-09-30 | 2022-01-28 | 北京奇艺世纪科技有限公司 | 一种节点分配的方法、装置、节点分配服务器及介质 |
CN110795250A (zh) * | 2019-10-30 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 负载调度方法、装置、设备及存储介质 |
CN110995802A (zh) * | 2019-11-22 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 任务的处理方法和装置、存储介质及电子装置 |
CN111158899A (zh) * | 2019-12-02 | 2020-05-15 | 南京星邺汇捷网络科技有限公司 | 一种数据的采集方法、采集器、任务管理中心以及系统 |
CN112395058A (zh) * | 2020-11-13 | 2021-02-23 | 北京数码视讯技术有限公司 | 任务调控装置、方法和系统 |
CN113687950A (zh) * | 2021-08-31 | 2021-11-23 | 平安医疗健康管理股份有限公司 | 基于优先级的任务分配方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936606A (zh) | 任务分配方法和装置 | |
CN105718317B (zh) | 一种任务调度方法及装置 | |
US8510745B2 (en) | Dynamic application placement under service and memory constraints | |
CN103067293B (zh) | 负载均衡设备的连接管理和复用的方法和系统 | |
CN104391918B (zh) | 基于对等部署的分布式数据库查询优先级管理的实现方法 | |
CN103997526A (zh) | 一种可扩展负载均衡系统和方法 | |
CN102611735A (zh) | 一种应用服务的负载均衡方法及系统 | |
CN113127192B (zh) | 一种多个服务共享同一个gpu的方法、系统、设备及介质 | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
CN104253850A (zh) | 一种任务分布式调度方法和系统 | |
Subramanian et al. | An adaptive algorithm for dynamic priority based virtual machine scheduling in cloud | |
CN105589750A (zh) | 一种cpu资源调度方法和服务器 | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
CN105491150A (zh) | 基于时间序列的负载均衡处理方法及系统 | |
Setty et al. | Cost-effective resource allocation for deploying pub/sub on cloud | |
CN108900626A (zh) | 一种云环境下数据存储方法、装置及系统 | |
Komarasamy et al. | A novel approach for Dynamic Load Balancing with effective Bin Packing and VM Reconfiguration in cloud | |
CN105872082B (zh) | 基于容器集群负载均衡算法的细粒度资源响应系统 | |
CN107172193A (zh) | 一种基于集群的负载均衡方法及其装置 | |
Keerthika et al. | A multiconstrained grid scheduling algorithm with load balancing and fault tolerance | |
CN110309229A (zh) | 分布式系统的数据处理方法和分布式系统 | |
Petrovska et al. | Features of the distribution of computing resources in cloud systems | |
CN106407007A (zh) | 面向弹性分析流程的云资源配置优化方法 | |
Patil et al. | Performance improvement in cloud computing through dynamic task scheduling algorithm | |
Vijayalakshmi et al. | Investigations on job scheduling algorithms in cloud computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190625 |
|
RJ01 | Rejection of invention patent application after publication |