CN107066332B - 分布式系统及其调度方法和调度装置 - Google Patents

分布式系统及其调度方法和调度装置 Download PDF

Info

Publication number
CN107066332B
CN107066332B CN201710056380.4A CN201710056380A CN107066332B CN 107066332 B CN107066332 B CN 107066332B CN 201710056380 A CN201710056380 A CN 201710056380A CN 107066332 B CN107066332 B CN 107066332B
Authority
CN
China
Prior art keywords
priority task
low
service node
resource
amount
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
CN201710056380.4A
Other languages
English (en)
Other versions
CN107066332A (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.)
Guangdong Shenma Search Technology Co., Ltd
Original Assignee
Guangzhou Shenma Mobile Information Technology 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 Guangzhou Shenma Mobile Information Technology Co Ltd filed Critical Guangzhou Shenma Mobile Information Technology Co Ltd
Priority to CN201710056380.4A priority Critical patent/CN107066332B/zh
Publication of CN107066332A publication Critical patent/CN107066332A/zh
Application granted granted Critical
Publication of CN107066332B publication Critical patent/CN107066332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Abstract

本发明公开了一种分布式系统及其调度方法和调度装置。其中业务节点可以周期性地向调度节点发送其上运行的一个或多个任务各自的当前资源占用信息,调度节点根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,可以确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量,并且调度节点根据当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,向业务节点发送调度指令,以调整该业务节点上运行的低优先级任务的资源占用量。由此可以在保证高优先级任务正常运行的情况下,充分利用业务节点空余的资源量运行低优先级任务,提高业务节点的资源利用率。

Description

分布式系统及其调度方法和调度装置
技术领域
本发明涉及分布式技术领域,特别是涉及一种分布式系统及其调度方法和调度装置。
背景技术
对于大部分分布式系统来说,其运行的生产任务所占用的资源经常是动态变化的,该现象在搜索系统中特别明显,每天晚上或者中午的时间段,流量高峰期的流量是低峰期的2~3倍。如果按照流量高峰期进行估算机器资源,就会出现在流量低峰期系统特别空闲的状态。如何利用这一部分资源进行一些低优先级任务的处理,以使得在流量可能高可能低的状况下,最大化利用非高峰期时段的CPU、内存、IO的资源,是目前需要解决的一个关键问题。
传统的分布式调度系统中针对这种问题一般有如下三种方案。第一种是抢占式固定额度的分配的方法,即每一个任务都有一个优先级,同时固定分配了一个CPU和内存的资源占用,这样一个高优先的任务肯定能够占有属于它的资源(CPU和内存),不会被低优先级的程序所抢占。这种方法实现简单,利于理解,大多数的在线离线复用的系统都采用了类似的方案,但是这种系统一个很严重的缺陷就是,像搜索系统这样流量高峰和低峰资源差别巨大的场景下,必须要固定分配高峰期额度的资源,才能够满足高峰期的资源利用情况,这样在低峰期依旧浪费了非常多的资源。
第二种使用的方案是,按照不同的时间段进行分配。该方案是在第一种方案的基础上进行改进的一个方案,用户需要设定一个时间段,比如晚上20点到23点,分配一个较大的资源,然后在其他时间段分配一个较小的资源。这种方式一定程度上能够满足搜索系统的使用需求。但是也造成了系统的不稳定性,试想一下,当在非高峰期有一个突增的流量,势必会导致系统的负载不足,从而造成系统服务能力不够等影响。同时该方案的资源利用率也不够高,流量低峰的时候资源未能得到完全的利用。
第三种使用的方案与第一种比较类似,它在第一种固定额度分配的基础上,针对离线的任务进行了一定程度的超卖,即实际只有N个CPU和M个内存,可以按照1:1.3:甚至1:2.0的比例进行分配。这样表面上可以在低峰期分配上较多的资源,但是,在高峰期仍然会造成不稳定的影响。系统的高峰期负载已经很高了,这时如果按照超卖的策略又分配了一部分任务,很有可能导致系统资源的不足和访问延迟的增高。
上述三种方案都不能充分利用分布式系统所能提供的资源,由此,需要一种更加优化的调度方案以提高分布式系统的资源的利用率。
发明内容
本发明主要解决的一个技术问题是,提供一种分布式系统、分布式系统的调度方法及调度装置,其能够在保证高优先级任务正常运行的前提下,充分利用调度系统的空闲资源运行低优先级任务,以提高分布式系统的资源利用率。
根据本发明的一个方面,提供了一种分布式系统的调度方法,分布式系统包括用于运行任务的业务节点,任务包括高优先级任务和低优先级任务,该方法包括:周期性地获取业务节点上运行的一个或多个任务各自的当前资源占用信息;根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量;以及根据当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,调整该业务节点上运行的低优先级任务的资源占用量。
由此,对于分布式系统中的业务节点,可以根据确定的该业务节点的当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的资源量,调整该业务节点上运行的低优先级任务的资源占用量,以使得经过调整后该业务节点上运行的低优先级任务的资源占用量可以接近但不大于当前低优先级任务可用资源量。这样可以在保证高优先级任务正常运行的情况下,充分利用业务节点空余的资源量运行低优先级任务,提高业务节点的资源利用率。
优选地,当前低优先级任务可用资源量是基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该 业务节点所拥有的总资源量确定的。
优选地,当前低优先级任务可用资源量P是根据下述公式计算得到的:
Figure BDA0001219334080000031
其中,α为业务节点所能提供的总资源量,β为高优先级任务所请求的高峰期资源占用量,β'为高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
优选地,该调度方法还可以包括:响应于新提交的高优先级任务请求,将高优先级任务分配给预定业务节点或能够处理该高优先级任务的业务节点;以及响应于新提交的低优先级任务请求,将低优先级任务分配给当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将低优先级任务放入等待队列。
由此,对于新提交的高优先级任务,可以将其分配给调度系统中预定的业务节点或能够处理该高优先级任务的业务节点;对于新提交的低优先级任务,可以将其分配给调度系统中当前低优先级任务可用量大于新提交的低优先级任务所请求的资源占用量的业务节点,在没有符合条件的业务节点时,可以将低优先级任务放入等待队列。
优选地,分布式系统还包括调度节点;业务节点上运行的任务以预定周期分别向调度节点发送资源占用信息;并且调度节点执行获取当前资源占用信息的步骤和确定当前低优先级任务可用资源量的步骤,并根据当前低优先级任务可用资源量和第二资源占用量向业务节点发送调度指令。
优选地,分布式系统包括多个业务节点,调度节点通过发送调度指令,在多个业务节点之间分配任务。
优选地,业务节点上运行的节点系统任务根据调度指令对低优先级任务所占用的资源进行调整。
根据本发明的另一个方面,还提供了一种分布式系统,包括调度节点和至少一个用于运行任务的业务节点,任务包括高优先级任务和低优先级任务,其中,业务节点周期性地向调度节点发送其上运行的一个或多个任务各自的当前资源占用信息;调度节点根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量;并且调度节点根据当前低优先级 任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,向业务节点发送调度指令,以调整该业务节点上运行的低优先级任务的资源占用量。
优选地,调度节点基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量,确定当前低优先级任务可用资源量。
优选地,调度节点根据下述公式计算得到当前低优先级任务可用资源量P:
Figure BDA0001219334080000041
其中,α为业务节点所能提供的总资源量,β为高优先级任务所请求的高峰期资源占用量,β'为高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
优选地,调度节点响应于新提交的高优先级任务请求,向预定业务节点或能够处理该高优先级任务的业务节点发送调度指令,以将高优先级任务分配给该业务节点;并且调度节点响应于新提交的低优先级任务请求,向当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点发送调度指令,以将低优先级任务分配给该业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将低优先级任务放入等待队列。
优选地,业务节点上运行的节点系统任务根据调度指令对低优先级任务所占用的资源进行调整。
根据本发明的另一个方面,还提供了一种分布式系统的调度装置,分布式系统包括用于运行任务的业务节点,任务包括高优先级任务和低优先级任务,该装置包括:信息获取装置,用于周期性地获取业务节点上运行的一个或多个任务各自的当前资源占用信息;可用资源量确定装置,用于根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量;以及资源调整装置,用于根据当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,调整该业务节点上运行的低优先级任务的资源占用量。
优选地,可用资源量确定装置基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量,确定当前低优先级任务可用资源量。
优选地,可用资源量确定装置根据下述公式计算得到当前低优先级任务可用资源量P:
Figure BDA0001219334080000051
其中,α为业务节点所能提供的总资源量,β为高优先级任务所请求的高峰期资源占用量,β'为高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
优选地,该调度装置还可以包括:高优先级任务分配装置,用于响应于新提交的高优先级任务请求,将高优先级任务分配给预定业务节点或能够处理该高优先级任务的业务节点;以及低优先级任务分配装置,用于响应于新提交的低优先级任务请求,将低优先级任务分配给当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将低优先级任务放入等待队列。
利用本发明的分布式系统及其调度方法和调度装置,可以根据确定的该业务节点的当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的资源量,调整该业务节点上运行的低优先级任务的资源占用量,以使得经过调整后该业务节点上运行的低优先级任务的资源占用量可以接近但不大于当前低优先级任务可用资源量。这样可以在保证高优先级任务正常运行的情况下,充分利用业务节点空余的资源量运行低优先级任务,提高业务节点的资源利用率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了根据本发明一实施例的分布式系统的功能框图。
图2是示出了根据本发明一实施例的分布式系统的调度方法的示意性流程图。
图3是示出了根据本发明一实施例的分布式系统的调度装置的示意性 流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
如前所述,对于分布式系统来说,其运行的高优先级任务所占用的资源经常是动态变化的,而分布式系统所提供的资源量一般与高优先级任务在高峰期运行所需求的资源量相当,因此如果分布式系统仅运行高优先级任务,则无疑会降低分布式系统的资源利用率。针对于此,本发明提出了一种适用于分布式系统的调度方案,其可以根据运行在调度系统中的业务节点上的任务的资源占用信息,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量,并根据运行在该业务节点上的低优先级任务实际占用的资源量,调整该业务节点上运行的低优先级任务的资源占用量,以使得经过调整后该业务节点上运行的低优先级任务的资源占用量可以接近但不大于当前低优先级任务可用资源量。由此可以提高业务节点的资源利用率,从而可以提高分布式系统的资源利用率。
下面将参照图1至图3来具体地描述本发明的实施例。图1是示出了根据本发明一实施例的分布式系统100的功能框图。
如图1所示,分布式系统100包括调度节点110和一个或多个业务节点120。业务节点120可以用于运行任务,在本发明中,运行在业务节点120上的任务可以包括高优先级任务和低优先级任务,高优先级任务可以是满足生产所需的生产任务,例如可以是在线任务,低优先级任务可以是非生产任务,例如可以是离线任务。
调度节点110和业务节点120均可以部署在服务器中。作为优选实施例,不同的业务节点120可以部署在不同的服务器中,并且调度节点110可以部署在不同于业务节点120的一个独立的服务器中,也可以和其中一个业务节点120部署在同一个服务器中。
调度节点110可以通过发送调度指令,在多个业务节点120之间分配 任务。
具体地,业务节点120可以周期性地向调度节点110发送其上运行的一个或多个任务各自的当前资源占用信息,调度节点110可以根据接收到来自业务节点120的一个或多个任务各自的当前资源占用信息,向业务节点120发送调度指令,业务节点120根据调度指令可以调整该业务节点120上运行的低优先级任务的资源占用量。具体地,业务节点120上可以运行节点系统任务,节点系统任务可以根据调度指令对低优先级任务所占用的资源进行调整。
调度节点110的具体处理过程可以参见图2,图2是示出了根据本发明一实施例的分布式系统的调度方法的示意性流程图。
参见图2,方法200开始于步骤S210,周期性地获取业务节点上运行的一个或多个任务各自的当前资源占用信息。运行在业务节点上的任务可以包括高优先级任务和低优先级任务,因此从业务节点获取的当前资源占用信息可以包括运行在该业务节点上的高优先级任务当前实际占用的第一以占用量和运行在该业务节点上的低优先级任务当前实际占用的第二资源占用量。其中,在业务节点上没有运行低优先级任务时,第二资源占用量为零。
接下来在步骤S220,根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量。其中,当前低优先级任务可用资源量可以是基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量确定的。
具体地,当前低优先级任务可用资源量P可以是根据下述公式计算得到的:
Figure BDA0001219334080000071
其中,α为业务节点所能提供的总资源量,β为高优先级任务所请求的高峰期资源占用量,其具体数值可以根据实际经验设定,β'为高优先级任务当前实际占用的第一资源占用量,一般来说,β'小于或等于β。其中当一个业务节点执行多个高优先级任务时,β和β'分别是这多个高优先级任务的所请求高峰期资源占用量总和和当前占用量总和。c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数,其用于指示高优先级任务在高峰期时能够占有总资源量的占有比例。举例来说,如果高峰期时只运行高优先级任务的话,表明高优先级任务在高峰期时占有总资源量的占有比例为1,此时c设置为1,由此当高优先级任务的实际占用的资源与高峰期资源相同的时候,低优先级任务的可用资源量P就会下降到0。再例如,c也可以设置为0.8,表明高优先级任务在高峰期时占有总资源量的占有比例为0.8,此时当高优先级任务的实际占用的资源与高峰期资源相同的时候,低优先级任务的可用资源量P就会下降到0.2α。
在确定了业务节点的当前低优先级任务可用资源量后,就可以执行步骤S230,根据当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,调整该业务节点上运行的低优先级任务的资源占用量。此处调整的目的在于充分利用业务节点当前多能提供的当前低优先级任务可用资源量,即使得调整后,业务节点上运行的低优先级任务所占用的资源占用量接近但不大于步骤S220所确定的当前低优先级任务可用资源量。
具体地,在步骤S210确定的当前低优先级任务可用资源量较小,而业务节点上运行的低优先级任务当前实际占用的第二资源占用量大于当前低优先级任务可用资源量时,则可以向该业务节点发送调度指令,以指令业务节点减少运行在其上的低优先级任务的资源的占用,或者直接停止低优先级任务以释放资源。另外,如果业务节点上运行的低优先级任务当前实际占用的第二资源小于步骤S210确定的当前低优先级任务可用资源量,则可以指令业务节点适当增加低优先级任务的资源占用量(例如可以增加线程数和处理能力)。由此利用本发明可以根据业务节点上运行的高优先级任务的实际占用资源信息,确定能够用于运行低优先级任务的当前低优先级任务可用资源量,根据当前低优先级任务可用资源量调整该业务节点上运行的低优先级任务的资源占用量,以充分利用业务节点所提供的资源量。
综上,本发明在保证了业务节点上高优先级任务优先正常运行的同时,还可以根据业务节点所能提供的当前低优先级任务可用资源量以及该业务节点上运行的低优先级任务当前实际占用的资源占用量,对该业务节点上运行的低优先级任务的资源占用量进行调整,以在不影响高优先级任务运行的同时,充分利用业务节点的资源量。
至此,结合图2详细说明了调度节点110可以执行的调度方法的具体 流程。其中,图2示出的是根据业务节点120上运行的任务的当前资源占用信息,对该业务节点120上运行的低优先级任务进行调整。另外,调度节点110还可以根据新提交的任务请求,将任务分配给调度系统中适合的业务节点120。
具体地,对于新提交的高优先级任务请求,调度节点可以将高优先级任务分配给预定业务节点或能够处理该高优先级任务的业务节点。由此,可以预先指定各高优先级任务所对应的业务节点,在提交新的高优先级任务时,就可以将该高优先级任务分配给对应的业务节点。另外,也可以响应于新提交的高优先级任务请求,寻找分布式系统中能够处理该高优先级任务的业务节点,将该高优先级任务分配给能够处理的业务节点。其中,调度节点可以通过向业务节点发送调度指令以实现高优先级任务的分配。
对于新提交的低优先级任务请求,调度节点可以将低优先级任务分配给当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将低优先级任务放入等待队列。
由此对于新提交的低优先级任务请求,调度节点可以首先判断或寻找调度系统中是否存在当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在判定存在或寻找到的情况下分配,在判定不存在或者寻找不到的情况下,放入等待队列。
图3是示出了根据本发明一实施例的分布式系统的调度装置的功能框图。其中,调度装置300的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图3所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图3所示的调度装置300可以用来实现图2所示的调度方法,下面仅就调度装置300可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2、图3的描述,这里不再赘述。
参见图3,调度装置300包括信息获取装置310、可用资源量确定装置320以及资源调整装置330。
信息获取装置310用于周期性地获取业务节点上运行的一个或多个任务各自的当前资源占用信息。
可用资源量确定装置320用于根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量。
在本发明一个可选实施例中,可用资源量确定装置320可以基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量,确定当前低优先级任务可用资源量。
具体地,可用资源量确定装置420可以根据下述公式计算得到当前低优先级任务可用资源量P:
Figure BDA0001219334080000101
其中,α为业务节点所能提供的总资源量,β为高优先级任务所请求的高峰期资源占用量,β'为高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
资源调整装置330用于根据当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,调整该业务节点上运行的低优先级任务的资源占用量。
如图3所示,调度装置300还可以可选地包括高优先级任务分配装置350和低优先级任务分配装置370。
高优先级任务分配装置350用于响应于新提交的高优先级任务请求,将高优先级任务分配给预定业务节点或能够处理该高优先级任务的业务节点。
低优先级任务分配装置370用于响应于新提交的低优先级任务请求,将低优先级任务分配给当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将低优先级任务放入等待队列。
上文中已经参考附图详细描述了根据本发明的分布式系统及其调度方法和调度装置。如下将给出利用本发明调度方案的一个具体应用。
本应用例的具体实现过程如下。
101、初始化设置
假设有1个调度节点,下面分别对应着M台机器,每台机器可以认为是一个业务节点,每台机器上可以运行多个具有不同优先级的任务,运行在机器上的任务按照优先级大小可以分为生产任务、非生产任务和系统任务。系统任务可以用来监视机器上非系统任务(生成任务和非生产任务)的运行,可以停止和启动其他的任务。在本实施例的运行场景中,首先必须要保证生产任务的正常运行,在此基础上,尽可能了利用整台机器的资源,提高资源利用率。同时,本实施例对于优先级进行了简化处理,只处理生产任务和非生产任务。
102、心跳的汇报
在本提案中每台机器上运行的每一个任务都会汇报自己的心跳到调度节点上,该心跳信息包括了该任务的CPU的占用情况、任务的内存的占用情况等等。
103、任务的提交
对于生产任务来将,任务提交的时候可以直接抢占非生产任务的资源,这样提交的时间按照高峰期的资源需求进行提交即可。对于非生产任务来讲,则会选择运行完生产任务后,额外剩余的实际资源下进行分配。该地方与固定额度分配不一样的情况是,这里分配依据的是实际占用后剩余的资源,而不是按照资源描述的资源。比如说,有一台机器有32核,128G的内存可以供使用,已经分配了一个生产任务,它的高峰期资源需求是24核,100G内存,当时当前只占用了12核,50G内存。这个时候有一个离线任务申请16核,60G内存,按照本方案是可以进行申请的。
104、多优先级的服务能力计算
对于生产任务来讲,它的服务能力就是它自己描述的高峰期资源需求。也就是说,当流量负载高的时候,它是最多可以使用它描述的所有资源。对于非生产任务来讲,它的服务能力P计算方法如下:
Figure BDA0001219334080000111
公式中的系数用于指示高峰期运行生产任务时,生产任务占用总服务能力的比例。如果高峰期资源时只供生产任务的话,那么系数可以设置为 1。这样当生产任务的实际占用的资源与高峰期资源相同的时候,非生产任务的服务能力就会下降到0,即不服务的状态。
105、对非生产任务的调整
当非生产任务的当前占用的资源超过了计算出来的服务能力,那么就会通知在该任务所在的机器上面的系统任务进行处理,可以通知其减少资源的占用,甚至直接停止该任务释放资源。如果占用的资源小于计算出来的服务能力,也可以通知该任务适当增加线程数和处理能力,从而做到根据机器的实际负载动态调整,最大限度的利用资源。
如下以分布式系统为搜索系统为例,说明利用本发明后的调度过程,如下场景假设搜索系统中每台机器上只运行一个生产任务和一个非生产任务,该非生产任务的资源可以动态进行控制。
1、流量从低峰期到高峰期,随着流量的增加,由于生产任务的服务能力等于其设定的高峰服务能力值,其实际占用的资源在一直增加,这时该机器上的非生产任务的服务能力会逐渐下降,这样就可以动态调整该非生产任务的资源占用情况。从而达到,在高峰期非生产任务的资源占用为0的目标。在这种场景下,该机器的资源利用率几乎是保持在高峰期的情况,同时也没有影响生产任务的运行。
2、流量从高峰期到低峰期,随着流量的下降,由于生产任务的服务能力实际占用的资源在一直下降,这时该机器上的非生产任务的服务能力会逐渐上升,这样就可以动态调整该非生产任务的资源占用情况。从而达到,在低峰期非生产任务的资源上升的情况。在这种场景下,该机器的资源利用率也能够是保持在高峰期的情况,同时也没有影响生产任务的运行。
在实际使用中,通过对大量的搜索机器进行压力测试,通过只允许运行生产任务和生产任务与非生产任务同时运行两种情况进行对比分析发现。在较高流量的情况下,两种情况下的平均查询延迟基本一致。可以说明,利用本发明的调度方案没有影响到生产任务的运行,而同时运行非生产任务则可以提高20%~30%的CPU利用率。
综上,本发明的调度方案通过统计分析从不同的业务节点上汇报的资源占用情况,收集每一个任务的实际资源占用量,在此基础上对不同的优先级进行了服务能力的计算,然后根据每一个任务上面计算出来的服务能力,能够对非生产任务的资源利用情况进行动态调整。通过动态调整不同 任务的资源,使得在不同的时段,生产任务实际能力动态变化的情况下,非生产任务占用的资源能够随之动态变化,从而达到了资源的最大化利用。而通过感应生产任务实际资源占用的变化,能够做到资源快速、动态的调整,从而保证了非生产任务不影响生产任务的响应时间等指标。
此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种分布式系统,包括调度节点和至少一个用于运行任务的业务节点,所述任务包括高优先级任务和低优先级任务,其中,
所述业务节点周期性地向所述调度节点发送其上运行的一个或多个任务各自的当前资源占用信息;
所述调度节点根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量;并且
所述调度节点根据所述当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,向所述业务节点发送调度指令,以调整该业务节点上运行的低优先级任务的资源占用量,
其中,所述调度节点响应于新提交的高优先级任务请求,向预定业务节点或能够处理该高优先级任务的业务节点发送调度指令,以将所述高优先级任务分配给该业务节点;并且
所述调度节点响应于新提交的低优先级任务请求,向当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点发送调度指令,以将所述低优先级任务分配给该业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将所述低优先级任务放入等待队列。
2.根据权利要求1所述的分布式系统,其中,
所述调度节点基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量,确定所述当前低优先级任务可用资源量。
3.根据权利要求2所述的分布式系统,其中,
所述调度节点根据下述公式计算得到所述当前低优先级任务可用资源量P:
Figure FDA0002231496780000011
其中,α为所述业务节点所能提供的总资源量,β为所述高优先级任务所请求的高峰期资源占用量,β'为所述高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
4.根据权利要求1-3中任何一项所述的分布式系统,其中,
所述业务节点上运行的节点系统任务根据所述调度指令对所述低优先级任务所占用的资源进行调整。
5.一种分布式系统的调度装置,所述分布式系统包括用于运行任务的业务节点,所述任务包括高优先级任务和低优先级任务,该装置包括:
信息获取装置,用于周期性地获取业务节点上运行的一个或多个任务各自的当前资源占用信息;
可用资源量确定装置,用于根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量;
资源调整装置,用于根据所述当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,调整该业务节点上运行的低优先级任务的资源占用量;
高优先级任务分配装置,用于响应于新提交的高优先级任务请求,将所述高优先级任务分配给预定业务节点或能够处理该高优先级任务的业务节点;以及
低优先级任务分配装置,用于响应于新提交的低优先级任务请求,将所述低优先级任务分配给当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将所述低优先级任务放入等待队列。
6.根据权利要求5所述的调度装置,其中,
所述可用资源量确定装置基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量,确定所述当前低优先级任务可用资源量。
7.根据权利要求6所述的调度装置,其中,
所述可用资源量确定装置根据下述公式计算得到所述当前低优先级任务可用资源量P:
Figure FDA0002231496780000031
其中,α为所述业务节点所能提供的总资源量,β为所述高优先级任务所请求的高峰期资源占用量,β'为所述高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
8.一种分布式系统的调度方法,所述分布式系统包括用于运行任务的业务节点,所述任务包括高优先级任务和低优先级任务,该方法包括:
周期性地获取业务节点上运行的一个或多个任务各自的当前资源占用信息;
根据业务节点上运行的高优先级任务当前实际占用的第一资源占用量,确定该业务节点能够用于运行低优先级任务的当前低优先级任务可用资源量;
根据所述当前低优先级任务可用资源量和该业务节点上运行的低优先级任务当前实际占用的第二资源占用量,调整该业务节点上运行的低优先级任务的资源占用量;
响应于新提交的高优先级任务请求,将所述高优先级任务分配给预定业务节点或能够处理该高优先级任务的业务节点;以及
响应于新提交的低优先级任务请求,将所述低优先级任务分配给当前低优先级任务可用资源量不小于该低优先级任务所请求的资源占用量的业务节点,在所有业务节点的当前低优先级任务可用资源量都小于该低优先级任务所请求的资源占用量的情况下,将所述低优先级任务放入等待队列。
9.根据权利要求8所述的调度方法,其中,
所述当前低优先级任务可用资源量是基于高优先级任务当前实际占用的第一资源占用量、高优先级任务所请求的高峰期资源占用量以及该业务节点所拥有的总资源量确定的。
10.根据权利要求9所述的调度方法,其中,
所述当前低优先级任务可用资源量P是根据下述公式计算得到的:
Figure FDA0002231496780000041
其中,α为所述业务节点所能提供的总资源量,β为所述高优先级任务所请求的高峰期资源占用量,β'为所述高优先级任务当前实际占用的第一资源占用量,c为表示高优先级任务在高峰期的资源占用量占总资源量的比例的设定系数。
11.根据权利要求8-10中任何一项所述的调度方法,其中,
所述分布式系统还包括调度节点;
所述业务节点上运行的任务以预定周期分别向所述调度节点发送所述资源占用信息;并且
所述调度节点执行所述获取当前资源占用信息的步骤和所述确定当前低优先级任务可用资源量的步骤,并根据所述当前低优先级任务可用资源量和所述第二资源占用量向所述业务节点发送调度指令。
12.根据权利要求11所述的调度方法,其中,
所述分布式系统包括多个所述业务节点,所述调度节点通过发送所述调度指令,在所述多个业务节点之间分配任务。
13.根据权利要求11所述的调度方法,其中,
所述业务节点上运行的节点系统任务根据所述调度指令对所述低优先级任务所占用的资源进行调整。
CN201710056380.4A 2017-01-25 2017-01-25 分布式系统及其调度方法和调度装置 Active CN107066332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710056380.4A CN107066332B (zh) 2017-01-25 2017-01-25 分布式系统及其调度方法和调度装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710056380.4A CN107066332B (zh) 2017-01-25 2017-01-25 分布式系统及其调度方法和调度装置

Publications (2)

Publication Number Publication Date
CN107066332A CN107066332A (zh) 2017-08-18
CN107066332B true CN107066332B (zh) 2020-03-13

Family

ID=59598079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710056380.4A Active CN107066332B (zh) 2017-01-25 2017-01-25 分布式系统及其调度方法和调度装置

Country Status (1)

Country Link
CN (1) CN107066332B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977268B (zh) * 2017-10-13 2021-07-20 北京百度网讯科技有限公司 人工智能的异构硬件的任务调度方法、装置及可读介质
CN108132840B (zh) * 2017-11-16 2021-12-03 浙江工商大学 一种分布式系统中的资源调度方法及装置
CN109039801B (zh) * 2018-06-29 2021-09-28 北京奇虎科技有限公司 分布式集群的套餐超用检测方法及装置、计算设备
CN109739627B (zh) * 2018-12-26 2021-05-28 上海连尚网络科技有限公司 任务的调度方法、电子设备及介质
CN110275777B (zh) * 2019-06-10 2021-10-29 广州市九重天信息科技有限公司 一种资源调度系统
CN112148471B (zh) * 2019-06-29 2023-07-07 华为技术服务有限公司 分布式计算系统中资源调度的方法和装置
CN110597626B (zh) * 2019-08-23 2022-09-06 第四范式(北京)技术有限公司 在分布式系统中资源及任务的分配方法、装置及系统
CN110781007B (zh) * 2019-10-31 2023-12-26 广州市网星信息技术有限公司 任务处理方法、装置、服务器、客户端、系统和存储介质
CN111026555B (zh) * 2019-12-23 2023-11-24 北京数衍科技有限公司 优先级分流补偿方法、装置及电子设备
CN111966479B (zh) * 2020-08-19 2024-03-29 支付宝(杭州)信息技术有限公司 业务处理、风险识别业务处理方法、装置及电子设备
CN111930514B (zh) * 2020-09-14 2021-09-10 四川中电启明星信息技术有限公司 一种资源优化分配方法及系统
CN112130995B (zh) * 2020-09-18 2023-01-06 苏州浪潮智能科技有限公司 一种实时数据处理方法和装置
CN112612616B (zh) * 2020-12-28 2024-02-23 中国农业银行股份有限公司 一种任务处理方法及装置
CN113778730B (zh) * 2021-01-28 2024-04-05 北京京东乾石科技有限公司 分布式系统的服务降级方法和装置
CN112948079B (zh) * 2021-02-18 2022-06-28 北京百度网讯科技有限公司 任务调度方法、装置、设备和计算机存储介质
CN114416381B (zh) * 2022-03-28 2022-08-12 维塔科技(北京)有限公司 处理资源超分方法、装置、设备及存储介质
CN114785790B (zh) * 2022-04-29 2024-03-08 杭州海康威视系统技术有限公司 跨域分析系统、跨域资源调度方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958808A (zh) * 2010-10-18 2011-01-26 华东交通大学 一种服务于多网格接入的集群任务调度管理器
CN102096602A (zh) * 2009-12-15 2011-06-15 中国移动通信集团公司 一种任务调度方法及其系统和设备
CN104461740A (zh) * 2014-12-12 2015-03-25 国家电网公司 一种跨域集群计算资源聚合和分配的方法
CN106293950A (zh) * 2016-08-23 2017-01-04 成都卡莱博尔信息技术股份有限公司 一种面向集群系统的资源优化管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096602A (zh) * 2009-12-15 2011-06-15 中国移动通信集团公司 一种任务调度方法及其系统和设备
CN101958808A (zh) * 2010-10-18 2011-01-26 华东交通大学 一种服务于多网格接入的集群任务调度管理器
CN104461740A (zh) * 2014-12-12 2015-03-25 国家电网公司 一种跨域集群计算资源聚合和分配的方法
CN106293950A (zh) * 2016-08-23 2017-01-04 成都卡莱博尔信息技术股份有限公司 一种面向集群系统的资源优化管理方法

Also Published As

Publication number Publication date
CN107066332A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
CN107066332B (zh) 分布式系统及其调度方法和调度装置
CN111444012B (zh) 一种保证延迟敏感应用延迟slo的动态调控资源方法及系统
CN106557369B (zh) 一种多线程的管理方法及系统
CN108762896B (zh) 一种基于Hadoop集群任务调度方法及计算机设备
CN108667748B (zh) 一种控制带宽的方法、装置、设备和存储介质
EP2193472B1 (en) Method and apparatus for managing license capacity in a telecommunication network
CN107018091B (zh) 资源请求的调度方法和装置
US10686728B2 (en) Systems and methods for allocating computing resources in distributed computing
KR20170116439A (ko) 태스크 스케줄링 방법 및 장치
CN103377092A (zh) 用于动态资源管理的两级动态资源管理方法和装置
CN110971623B (zh) 微服务实例弹性伸缩方法、装置以及存储介质
CN103502944A (zh) 虚拟机内存调整方法和设备
CN106101017B (zh) 一种线路流量控制方法及装置
CN114389955B (zh) 嵌入式平台异构资源池化管理方法
CN111240824A (zh) 一种cpu资源调度方法及电子设备
CN114416355A (zh) 资源调度方法、装置、系统、电子设备及介质
CN107423134B (zh) 一种大规模计算集群的动态资源调度方法
CN114020407A (zh) 一种容器管理集群容器组调度优化方法、装置、设备
CN115640113A (zh) 多平面弹性调度方法
CN111124674B (zh) 一种硬件资源的管理方法、存储介质及终端
CN117032977A (zh) 混部应用资源分配方法、装置、计算机设备及存储介质
CN116643858A (zh) 基于业务优先级pod再调度方法、装置、设备及介质
CN116360922A (zh) 集群资源调度方法、装置、计算机设备和存储介质
CN113760549B (zh) 一种pod部署方法及装置
CN111459651B (zh) 一种负载均衡方法、装置、存储介质及调度系统

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200810

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01

Patentee before: Guangdong Shenma Search Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211111

Address after: 510277 room 1901, No. 88 Dingxin Road, Haizhu District, Guangzhou City, Guangdong Province

Patentee after: Guangdong Shenma Search Technology Co., Ltd

Address before: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou, Zhejiang

Patentee before: Alibaba (China) Co., Ltd