CN105740077B - 一种适用于云计算的任务分配方法 - Google Patents

一种适用于云计算的任务分配方法 Download PDF

Info

Publication number
CN105740077B
CN105740077B CN201610065720.5A CN201610065720A CN105740077B CN 105740077 B CN105740077 B CN 105740077B CN 201610065720 A CN201610065720 A CN 201610065720A CN 105740077 B CN105740077 B CN 105740077B
Authority
CN
China
Prior art keywords
load
node
load table
task
polling period
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.)
Active
Application number
CN201610065720.5A
Other languages
English (en)
Other versions
CN105740077A (zh
Inventor
贾智宇
王志军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201610065720.5A priority Critical patent/CN105740077B/zh
Publication of CN105740077A publication Critical patent/CN105740077A/zh
Application granted granted Critical
Publication of CN105740077B publication Critical patent/CN105740077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种适用于云计算的任务分配方法,包括:建立第一负载表;计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在第一负载表中;根据第一负载表,先将任务分配到负载最重的第一个节点,当接收到下一个任务,将下一个任务分配到负载次重的第二个节点,依次下去;以及在一个轮询周期T之后更新第一负载表。另外,本发明的方法还包括:建立第二负载表;以及在第一负载表与第二负载表之间进行切换,使得在一个轮询周期T内第一负载表和第二负载表中只有一者是有效的。根据本发明的技术方案,在物理节点不超载的情况下,可以将任务尽量集中在少数节点上,使得各个节点的计算能力得到充分的利用。

Description

一种适用于云计算的任务分配方法
技术领域
本发明涉及云计算技术领域,更具地说,涉及一种适用于云计算的任务分配方法。
背景技术
在云计算数据中心的现有任务分配系统中,当任务到来时,如果系统没有配备负载均衡器,那么任务会随机分配到某一节点上;如果系统配备有负载均衡器,那么任务会通过负载均衡器而分配到当前负载较低的节点上。
在配备有负载均衡器的任务分配系统中,负载均衡器会计算并分析当前每个节点的负责情况,然后将任务分配给当前负责较低的节点。例如,CN103279391A公开了一种基于CPU与MIC构架处理器协同计算的负载均衡优化方法,利用该方法将线程(即,任务)分配到负载轻的节点上,从而实现负载均衡。虽然该方法能够使每个任务都由负载较轻的节点来处理,但是如果在非高峰时段,各个节点只能分配到很少的一部分任务,使得计算资源使用率很低。此时全部物理设备处于开启状态,同样造成能源浪费。
发明内容
本发明的目的在于提供一种适用于云计算的任务分配方法,以解决现有技术中计算资源使用率很低的问题。
为了解决上述问题,根据本发明的适用于云计算的任务分配方法包括以下步骤:
S101,建立第一负载表;
S102,计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在所述第一负载表中;
S103,根据所述第一负载表,将第一个任务分配给第一个节点,将第二个任务分别给第二个节点,……,将第n个任务分配给第n个节点,其中第一个节点、第二个节点……第n个节点按照负载从重到轻的顺序排列;以及
S104,在一个轮询周期T之后更新所述第一负载表。
优选的是,在步骤S102中,根据以下公式计算各个节点的负载:
DL(Ni)=A1Lmemory(Ni)+A2Lcpu(Ni)+A3Lio(Ni)
+A4Lprocess(Ni)+A5Lresponse(Ni)
其中,Ai表示负载参数的重要程度,Ai的取值范围为0和1之间,且
Figure BDA0000918560700000021
Lmemory,Lcpu,Lio,Lprocess和Lresponse分别代表内存使用率、CPU使用率、IO使用率、进程总数和响应时间。
优选的是,所述在每一个轮询周期T之后更新所述第一负载表的步骤S104包括:计算各个节点的负载,按照负载从重到轻的顺序重新排列各个节点并将排列结果储存在第一负载表中。
优选的是,在步骤S104中,轮询周期T设为5秒至10秒。
优选的是,所述在每一个轮询周期T之后更新所述第一负载表的步骤S104还包括:当节点出现以下情况时,该节点不会出现在更新的第一负载表中,
a.该节点出现故障,
b.网络异常,
c.该节点的负载达到设定的阈值。
优选的是,所述阈值设置为节点最大负载的80%。
优选的是,所述方法还包括以下步骤:
S106,建立第二负载表;
S107,计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在所述第二负载表中;
S108,根据所述第二负载表,将第一个任务分配给第一个节点,将第二个任务分别给第二个节点,……,将第n个任务分配给第n个节点,其中第一个节点、第二个节点……第n个节点按照负载从重到轻的顺序排列;以及
S109,在一个轮询周期T之后更新所述第二负载表。
优选的是,所述方法还包括以下步骤:
S110,在所述第一负载表与所述第二负载表之间进行切换,使得在一个轮询周期T内所述第一负载表和所述第二负载表中只有一者是有效的。
本发明的技术方案包括:建立第一负载表;计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在第一负载表中;根据第一负载表,先将任务分配到负载最重的第一个节点,当接收到下一个任务,将下一个任务分配到负载次重的第二个节点,依次下去;以及在一个轮询周期T之后更新第一负载表。因此,在物理节点不超载的情况下,可以将任务尽量集中在少数物理节点上,使节点的计算能力得到充分的使用,提升了物理资源的使用效率。
本发明的优选实施方式还包括:建立第二负载表;以及在所述第一负载表与所述第二负载表之间进行切换,使得在一个轮询周期T内所述第一负载表和所述第二负载表中只有一者是有效的。因此,本发明还进一步解决了由于在更新负载表时接收到新的任务而造成数据读写不一致的问题。
附图说明
下面,将结合附图对本发明的特征和特点进行详细描述。在附图中:
图1是根据本发明的适用于云计算的任务分配方法的流程图。
具体实施方式
下面,将参考附图,详细描述根据本发明的适用于云计算的任务分配方法。图1示出了根据本发明的适用于云计算的任务分配方法的流程图。如图1所示,该方法的步骤包括以下步骤。
S101,建立第一负载表。
S102,计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在所述第一负载表中。
一般来说,只有系统能够准确及时的对节点负载情况进行计算和记录,才能够准确判断节点是否超载,是否能够接收新的任务。相反,如果节点负载信息不准确,则可能会导致超载节点仍然接收新的任务。节点负载的参数通常包括CPU利用率、CPU就绪队列长度、内存使用情况、磁盘访问频度以及IO速度等。在根据本发明的方法中,在判断节点是否超载时,还考虑CPU资源、内存资源、当前进程数以及响应时间等因素。因此,任意一个节点Ni的动态负载值公式为:
DL(Ni)=A1Lmemory(Ni)+A2Lcpu(Ni)+A3Lio(Ni)
+A4Lprocess(Ni)+A5Lresponse(Ni)
其中,为每个负载分量设定常量系数Ai来表示各负载参数的重要程度,Ai的取值范围为0和1之间,且
Figure BDA0000918560700000041
公式中Lmemory,Lcpu,Lio,Lprocess和Lresponse分别代表内存使用率、CPU使用率、IO使用率、进程总数和响应时间。
通过上述公式,可以获得有关节点负载状况的信息。
S103,根据所述第一负载表,将第一个任务分配给第一个节点,将第二个任务分别给第二个节点,……,将第n个任务分配给第n个节点,其中第一个节点、第二个节点……第n个节点按照负载从重到轻的顺序排列。
在步骤S103中,先将第一个任务分配给负载最大的第一个节点,然后当第二个任务到来时,将第二个任务分配给第二个节点,依次下去。在物理节点不超载的情况下,可以将任务尽可能地集中在少数物理节点上,使得处理任务的节点的计算能力得到充分的使用。因此,提升了物理资源的使用效率,也方便管理。此时,也可以关停部分空闲的物理节点以节省消耗。
S104,在一个轮询周期T之后更新所述第一负载表。
所述在每一个轮询周期T之后更新所述第一负载表的步骤S104包括:计算各个节点的负载,按照负载从重到轻的顺序重新排列各个节点并将排列结果储存在第一负载表中。
轮询周期T需要根据需求来进行设定,并非越大越好或者越小越好。在理论上,轮询周期越短,采集信息就越频繁,也就越能够实时反映各个节点的负载情况。但是频繁进行采集信息会对节点带来负担,也会增加不必要的网络开销,导致负载加重。因此,在本发明中,轮询周期T设为5秒至10秒。
根据本发明的方法,第一负载表储存在集中控制器中,因此每个新任务到达时首先要经过均衡器并且由均衡器根据负载表来确定下一个执行节点。例如,此次执行任务的节点为第一负载表中的第i个节点,则会生成一个指针来进行标记;当新任务到达时,如果仍然处于同一轮询周期内,则会选择第一负载表中的第i+1个节点来执行该任务。
在更新第一负载表时,并非所有的物理节点都适合再次执行任务。因此,所述在每一个轮询周期T之后更新所述第一负载表的步骤S104还包括:当节点出现以下情况时,该节点不会出现在更新的第一负载表中,
a.该节点出现故障,
b.网络异常,
c.该节点的负载达到设定的阈值。
在该步骤中,如果一个节点没有出现在更新的第一负载表中,这意味着均衡器不会再将任务分配给该节点。如果集群中的某个节点出现故障(非中央节点),该节点将不会出现在更新的负载表中,也不会被选取来执行,直到其恢复正常。在网络异常的情况下,中央节点可能会收不到节点的负载信息,因此该节点也不会出现在更新的负载表中。当一个节点的负载已经很重时,如果还将任务优先分配给该节点,那么可能会造成该节点瘫痪甚至造成损坏。因此,需要对节点设置一个阈值。如果节点的负载达到阈值,那么该节点不会出现在更新的负载表中。优选的是,例如,该阈值设置为节点最大负载的80%。也就是说,当一个节点的负载已经达到其最大负载的80%,那么该节点将不会出现在更新的负载表中。
根据本发明的适用于云计算的任务分配方法,还可以包括步骤S105,重复执行步骤S103和步骤S104。
如上文所述,负载表保存在集中控制器中,存储着集群中各节点负载信息,是进行节点选取的依据。在每次进行任务分配时,都需要根据负载表的信息执行节点的选取。另外,本发明方法中负载表需要在每一个轮询周期T之后进行更新。这样就会出现一个新的问题:如果在更新负载表时均衡器接收到新的任务,那么该任务将分配给哪个节点。由于此时负载表正在进行动态更新,此时可能会造成数据读写不一致。
为解决该问题,根据本发明的适用于云计算的任务分配方法进一步包括以下步骤。
S106,建立第二负载表。
S107,计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在所述第二负载表中。
S108,根据所述第二负载表,将第一个任务分配给第一个节点,将第二个任务分别给第二个节点,……,将第n个任务分配给第n个节点,其中第一个节点、第二个节点……第n个节点按照负载从重到轻的顺序排列。
S109,在一个轮询周期T之后更新所述第二负载表。
S110,在所述第一负载表与所述第二负载表之间进行切换,使得在一个轮询周期T内所述第一负载表和所述第二负载表中只有一者是有效的。
虽然在步骤S106中建立了第二负载表,但是在一个轮询周期T内只有一个负载表是有效的。有效的负载表可以用来选取节点,而另一个负载表则作为备用负载表准备用于下一个轮询周期T。例如,在一个轮询周期T内使用第一负载表来选取节点,而此时第二负载表完成更新;在下一个轮询周期T内使用第二负载表来选取节点,而此时第一负载表完成更新。在一个轮询周期T之后,第一负载表和第二负载表可以自动地切换。
在本文中,步骤S107、步骤S108和步骤S109与前述步骤S102、步骤S103和步骤S104相同,因此省略其详细描述。
另外,在根据本发明的适用于云计算的任务分配方法中,只要能够保证在一个轮询周期T内所述第一负载表和所述第二负载表中只有一者是有效的,步骤S107-步骤S109可以在步骤S102-步骤S104之前执行,之中执行或之后执行,或者还可以与步骤S102-步骤S104交叉或同时执行。

Claims (8)

1.一种适用于云计算的任务分配方法,其中,所述方法包括以下步骤:
S101,建立第一负载表;
S102,计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在所述第一负载表中;
S103,根据所述第一负载表,将第一个任务分配给第一个节点,将第二个任务分别给第二个节点,……,将第n个任务分配给第n个节点,其中第一个节点、第二个节点……第n个节点按照负载从重到轻的顺序排列;以及
S104,在一个轮询周期T之后更新所述第一负载表。
2.根据权利要求1所述的方法,其中,在步骤S102中,根据以下公式计算各个节点的负载:
DL(Ni)=A1Lmemory(Ni)+A2Lcpu(Ni)+A3Lio(Ni)
+A4Lprocess(Ni)+A5Lresponse(Ni)
其中,Ai表示负载参数的重要程度,Ai的取值范围为0和1之间,且
Figure FDA0001987240830000011
Lmemory,Lcpu,Lio,Lprocess和Lresponse分别代表内存使用率、CPU使用率、IO使用率、进程总数和响应时间。
3.根据权利要求1所述的方法,其中,所述在一个轮询周期T之后更新所述第一负载表的步骤S104包括:计算各个节点的负载,按照负载从重到轻的顺序重新排列各个节点并将排列结果储存在第一负载表中。
4.根据权利要求1所述的方法,其中,在步骤S104中,轮询周期T设为5秒至10秒。
5.根据权利要求1所述的方法,其中,所述在一个轮询周期T之后更新所述第一负载表的步骤S104还包括:当节点出现以下情况时,该节点不会出现在更新的第一负载表中,
a.该节点出现故障,
b.网络异常,
c.该节点的负载达到设定的阈值。
6.根据权利要求5所述的方法,其中,所述阈值设置为节点最大负载的80%。
7.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:
S106,建立第二负载表;
S107,计算各个节点的负载,然后按照负载从重到轻的顺序排列各个节点并将排列结果储存在所述第二负载表中;
S108,根据所述第二负载表,将第一个任务分配给第一个节点,将第二个任务分别给第二个节点,……,将第n个任务分配给第n个节点,其中第一个节点、第二个节点……第n个节点按照负载从重到轻的顺序排列;以及
S109,在一个轮询周期T之后更新所述第二负载表。
8.根据权利要求7所述的方法,其中,所述方法还包括以下步骤:
S110,在所述第一负载表与所述第二负载表之间进行切换,使得在一个轮询周期T内所述第一负载表和所述第二负载表中只有一者是有效的。
CN201610065720.5A 2016-01-29 2016-01-29 一种适用于云计算的任务分配方法 Active CN105740077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610065720.5A CN105740077B (zh) 2016-01-29 2016-01-29 一种适用于云计算的任务分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610065720.5A CN105740077B (zh) 2016-01-29 2016-01-29 一种适用于云计算的任务分配方法

Publications (2)

Publication Number Publication Date
CN105740077A CN105740077A (zh) 2016-07-06
CN105740077B true CN105740077B (zh) 2020-02-07

Family

ID=56246980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610065720.5A Active CN105740077B (zh) 2016-01-29 2016-01-29 一种适用于云计算的任务分配方法

Country Status (1)

Country Link
CN (1) CN105740077B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608783A (zh) * 2016-07-11 2018-01-19 中兴通讯股份有限公司 一种数据处理的方法及装置
CN106325976B (zh) * 2016-08-05 2019-11-15 湖南天河国云科技有限公司 一种渲染任务调度处理方法及服务器
CN107835130A (zh) * 2017-12-12 2018-03-23 中国联合网络通信集团有限公司 一种流量分配方法及装置
CN112432324A (zh) * 2020-11-16 2021-03-02 海信(广东)空调有限公司 负载的控制方法、装置及空调器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246592A (zh) * 2013-05-13 2013-08-14 北京搜狐新媒体信息技术有限公司 一种监控采集系统及方法
CN104580306A (zh) * 2013-10-21 2015-04-29 北京计算机技术及应用研究所 一种多终端备份服务系统及其任务调度方法
CN104793990A (zh) * 2015-04-21 2015-07-22 中国海洋大学 一种多时序任务调度方法和系统
CN104994156A (zh) * 2015-07-01 2015-10-21 北京京东尚科信息技术有限公司 一种集群的负载均衡方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100476742C (zh) * 2007-02-09 2009-04-08 华中科技大学 基于对象存储设备的负载平衡方法
CN102158513A (zh) * 2010-02-11 2011-08-17 联想(北京)有限公司 一种服务器集群节能的方法、装置和服务器集群
CN103246550A (zh) * 2012-02-09 2013-08-14 深圳市腾讯计算机系统有限公司 一种基于容量的多任务调度方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246592A (zh) * 2013-05-13 2013-08-14 北京搜狐新媒体信息技术有限公司 一种监控采集系统及方法
CN104580306A (zh) * 2013-10-21 2015-04-29 北京计算机技术及应用研究所 一种多终端备份服务系统及其任务调度方法
CN104793990A (zh) * 2015-04-21 2015-07-22 中国海洋大学 一种多时序任务调度方法和系统
CN104994156A (zh) * 2015-07-01 2015-10-21 北京京东尚科信息技术有限公司 一种集群的负载均衡方法及系统

Also Published As

Publication number Publication date
CN105740077A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN102111337B (zh) 任务调度方法和系统
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN112162865B (zh) 服务器的调度方法、装置和服务器
CN104102543B (zh) 一种云计算环境中负载调整的方法和装置
CN105740077B (zh) 一种适用于云计算的任务分配方法
US20170139462A1 (en) Datacenter power management optimizations
US6986139B1 (en) Load balancing method and system based on estimated elongation rates
CN103699433B (zh) 一种于Hadoop平台中动态调整任务数目的方法及系统
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN103327072A (zh) 一种集群负载均衡的方法及其系统
US11119563B2 (en) Dynamic power capping of multi-server nodes in a chassis based on real-time resource utilization
CN108446179B (zh) 基于负载均衡机制的权重优先Task任务调度方法
CN110362392A (zh) 一种etl任务调度方法、系统、设备及存储介质
CN112817728B (zh) 任务调度方法、网络设备和存储介质
CN103986766A (zh) 自适应负载均衡作业任务调度方法及装置
CN103502944A (zh) 虚拟机内存调整方法和设备
CN102339233A (zh) 云计算集中管理平台
CN112711479A (zh) 服务器集群的负载均衡系统、方法、装置和存储介质
CN110099083A (zh) 一种用于服务器集群的负载均衡调度方法及装置
CN110764915A (zh) 一种针对kubernetes主节点选择的优化方法
CN105975345A (zh) 一种基于分布式内存的视频帧数据动态均衡存储管理方法
CN109165045A (zh) 一种调整服务器的硬件配置的方法和装置
CN103488538A (zh) 云计算系统中的应用扩展装置和应用扩展方法
WO2024088078A1 (zh) 一种带宽调节方法、系统、设备及存储介质
CN111930516B (zh) 一种负载均衡方法及相关装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant