CN111506414A - 资源调度方法、装置、设备、***及可读存储介质 - Google Patents
资源调度方法、装置、设备、***及可读存储介质 Download PDFInfo
- Publication number
- CN111506414A CN111506414A CN201910091106.XA CN201910091106A CN111506414A CN 111506414 A CN111506414 A CN 111506414A CN 201910091106 A CN201910091106 A CN 201910091106A CN 111506414 A CN111506414 A CN 111506414A
- Authority
- CN
- China
- Prior art keywords
- resource
- target
- application
- online
- application object
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Abstract
本发明公开了一种资源调度方法、装置、设备、***及可读存储介质,该方法包括:获取目标应用对象的资源需求信息,目标应用对象是在线类应用、离线类应用或平台类应用中的一种;根据所述目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备,生成对应的资源分配信息;将所述资源分配信息发送给所述目标设备,以触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源。
Description
技术领域
本发明涉及资源调度技术领域,更具体地,涉及一种资源调度方法、装置、设备、***及可读存储介质。
背景技术
在线服务集群包括多个联合起来的具有数据处理能力的设备(例如服务器),可以共同响应或处理各种业务请求。随着互联网、计算机技术的飞速发展,提供用户特定的应用服务功能的应用的规模数量爆发性增长,通过在线服务集群响应大量应用的资源请求,提供应用所需的资源,可以提高处理效率。
但是,在线服务器集群由于业务流量的峰谷特性难以预估、预防性的灾难备援等因素,处理器资源平均使用率普遍较低。
发明内容
本发明的一个目的是提供一种用于资源调度的新技术方案。
根据本发明的第一方面,提供了一种资源调度方法,其包括:
获取目标应用对象的资源需求信息,目标应用对象是在线类应用、离线类应用或平台类应用中的一种;
根据所述目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备,生成对应的资源分配信息;
将所述资源分配信息发送给所述目标设备,以触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源。
优选地,所述资源需求信息至少包括所述目标应用对象的资源请求信息、资源预估信息以及需求优先级;所述需求优先级包括在线类优先级、离线类优先级以及平台类优先级;
所述获取目标应用对象的资源需求信息的步骤包括:
当所述目标应用对象是所述在线类应用或所述离线类应用时,根据所述目标应用对象设置所述资源请求信息以及所述需求优先级,并根据所述资源请求信息获取所述资源预估信息;
当所述目标应用对象是所述平台类应用时,根据所述目标应用对象设置所述资源预估信息以及所述需求优先级,并根据所述资源预估信息获取所述资源请求信息。
优选地,当所述目标应用对象是所述在线类应用或所述离线类应用时,根据所述资源请求信息获取所述资源预估信息的步骤包括:
根据所述资源请求信息以及所述目标应用对象的最小保证负载、预测负载,获取所述资源预估信息;
其中,所述预测负载是根据所述目标应用对象的历史负载信息获取的。
优选地,当所述目标应用对象是所述平台类应用时,根据所述资源预估信息获取所述资源请求信息的步骤包括:
根据所述目标应用对象的资源预估信息、支持提供资源的设备的固有资源以及可获取的其他应用对象的资源预估信息,获取所述目标应用对象的资源请求信息。
优选地,所述在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备的步骤包括:
根据所述目标应用对象的资源需求信息,获取每个备选设备的资源评分;
根据每个所述备选设备的资源评分的降序排序次序,分配所述目标设备。
优选地,所述资源需求信息至少包括所述目标应用对象的资源请求信息、资源预估信息以及需求优先级;所述需求优先级包括在线类优先级、离线类优先级以及平台类优先级;
所述根据所述目标应用对象的资源需求信息,获取每个备选设备的资源评分的步骤包括:
当所述需求优先级是在线类优先级时,根据所述目标应用对象的资源请求信息以及所述备选设备上其他应用对应的资源请求信息、所述备选设备的第一资源状态参数,获取所述备选设备的资源评分;
其中,所述备选设备的第一资源状态参数至少包括所述备选设备的均衡性指标、资源稀缺性指标、抢占代价指标、应用多样性指标以及应用偏好性指标;
当所述需求优先级是离线类优先级或者平台类优先级时,根据所述目标应用对象的资源请求信息以及所述备选设备上其他应用对应的资源请求信息、所述备选设备的第二资源状态参数,获取所述备选设备的资源评分;
其中,所述备选设备的第二资源状态参数至少包括所述备选设备的均衡性指标以及抢占代价指标。
优选地,所述资源分配信息至少包括所述目标应用对象在每个所述目标设备上的资源分配指示以及服务质量配置参数;
所述触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源的步骤包括:
触发所述目标设备根据所述资源分配指示以及所述服务质量配置参数,获取所述目标设备的服务质量参数,以设置所述目标设备向所述目标应用对象提供资源;
其中,所述服务质量参数至少包括处理器服务质量参数、存储器服务质量参数、网络服务质量参数、读写服务质量参数、控制服务质量参数其中之一。
优选地,所述处理器服务质量参数至少包括在线业务组的处理资源限制指示以及离线业务组的处理资源限制指示;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务;
所述服务质量配置参数中至少包括处理负载控制指示、最小负载限制以及处理配置权重;
所述获取所述目标设备的服务质量参数的步骤包括:
将所述在线业务组的所述处理资源限制指示为不受限;
根据所述目标设备的处理器资源、所述处理负载控制指示、所述最小负载限制以及所述目标设备的所述在线业务组的在线处理负载,获取所述处理资源限制指示;
其中,所述在线处理负载是根据所述在线业务组所包括的应用对象的所述资源预测信息、应用处理负载以及所述处理配置权重获取的。
优选地,所述存储器服务质量参数至少包括在线业务组的存储资源限制指示以及离线业务组的存储资源限制指示;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务;
所述服务质量配置参数中至少包括存储负载控制指示;
所述获取所述目标设备的服务质量参数的步骤包括:
将所述在线业务组的所述存储资源限制指示为不受限;
根据所述目标设备的存储器资源、存储负载控制指示以及所述目标设备的所述在线业务组的在线存储负载,获取所述存储资源限制指示。
优选地,所述网络服务质量参数至少包括网络带宽限制指示以及传输服务质量指示;
所述获取所述目标设备的服务质量参数的步骤包括:
区分所述目标设备上的控制组、在线业务组以及离线业务组,分别设置所述网络服务质量参数;
其中,所述控制组包括与控制相关的任务;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
优选地,所述读写服务质量参数至少包括与存储相关的读写限制指示;
所述获取所述目标设备的服务质量参数的步骤包括:
区分所述目标设备上的在线业务组以及离线业务组,分别设置所述读写服务质量参数;
其中,所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
优选地,所述控制服务质量参数至少包括处理器链路控制指示以及存储器带宽比例;
所述获取所述目标设备的服务质量参数的步骤包括:
区分所述目标设备上的在线业务组以及离线业务组,分别设置所述控制服务质量参数;
其中,所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
优选地,所述资源分配指示至少包括分配在所述目标设备上的应用对象的资源请求信息以及需求优先级;
所述服务质量参数还包括所述目标设备上每个所述应用对象的对象评分;所述应用对象的对象评分用于在所述目标设备被触发实施资源抢占时选取被抢占资源的所述应用对象;
所述获取所述目标设备的服务质量参数的步骤包括:
根据所述目标设备上每个所述应用对象的所述资源请求信息、应用存储负载、运行时长、所述需求优先级以及所述目标设备的物理存储资源,获取所述应用对象的对象评分。
根据本发明的第二方面,提供一种资源调度装置,其中,包括:
需求获取单元,用于获取目标应用对象的资源需求信息,目标应用对象是在线类应用、离线类应用或平台类应用中的一种;
资源分配单元,用于根据所述目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备,生成对应的资源分配信息;
资源提供单元,用于将所述资源分配信息发送给所述目标设备,以触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源。
根据本发明的第三方面,还提供一种资源调度设备,其中,包括:
存储器,用于存储可执行指令;
处理器,用于根据所述可执行指令的控制,运行所述资源调度设备执行如本发明第一方面所述的资源调度方法。
根据本发明的第四方面,还提供一种可读存储介质,其中,所述可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机运行时,执行如本发明第一方面所述的资源调度方法。
根据本发明的第五方面,提供一种资源调度***,其中,包括:
多个用于提供资源的设备;
如本发明的第二方面所述的资源调度装置或如本发明的第三方面所述的资源调度设备。
根据本公开的一个实施例,提供一种资源调度的新技术方案,通过获取目标应用对象的资源需求信息,根据目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向目标应用对象提供资源的目标设备,生成对应的资源分配信息,并将资源分配信息发送给目标设备,以触发目标设备根据资源分配信息,向目标应用对象提供资源,本发明可以针对不同类型的目标应用对象对应的实际资源需求信息进行资源分配,从而实现有效率的资源调度,提高资源利用率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的计算机集群的硬件配置的例子的框图。
图2是根据本发明实施例的资源调度方法的示意性流程图;
图3是根据本发明另一实施例的资源调度方法的示意性流程图;
图4是根据本发明实施例的资源调度装置的原理框图;
图5是根据本发明实施例的资源调度设备的硬件配置框图;
图6是根据本发明实施例的资源调度***的框图;
图7是根据本发明另一实施例的资源调度***的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1示出了可以实现本实施例服务器集群的硬件配置框图。
如图1所示,本实施例的服务器集群中包括多个服务器1000,图1中示出了4个服务器1000,分别为服务器1000A、服务器1000B、服务器1000C和服务器1000D。
在本实施例中,服务器集群中具有的服务器1000的数量可以根据实际场景确定,在此不做任何限定。
在本实施例中,这些服务器1000组成服务器集群,每一个服务器1000均可以作为提供资源的设备,可以是在服务器集群中的少量服务器1000中设置Master组件,以及,在服务器集群中的每一服务器1000中均设置Slave组件。
在本实施例中,可以是服务器集群中的任意一个具有Master组件的服务器1000作为主服务器,服务器集群中的其他具有Slave组件的服务器作为从服务器,主服务器和从服务器相互配合以实现本发明资源调度方法,例如,主服务器获取目标应用对象的资源需求信息,根据目标应用对象的资源需求信息,在多个从服务器中,分配用于向目标应用对象提供资源的目标从服务器,生成对应的资源分配信息,并将资源分配信息发送给目标从服务器,目标从服务器根据资源分配信息,向目标应用对象提供资源。
服务器1000提供处理、数据库、通讯设施的业务点。服务器1000可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,网络服务器,新闻服务器,邮件服务器,消息服务器,广告服务器,文件服务器,应用服务器,交互服务器,数据库服务器,或代理服务器。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。
在一个实施例中,服务器1000可以如图1所示,包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600。
在该实施例中,服务器1000还可以包括扬声器、麦克风等等,在此不做限定。
处理器1100可以是专用的服务器处理器,也可以是满足性能要求的台式机处理器、移动版处理器等,在此不做限定。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括各种总线接口,例如串行总线接口(包括USB接口)、并行总线接口等。通信装置1400能够进行有线或无线通信。显示装置1500例如是液晶显示屏、LED显示屏触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。
尽管在图1中示出了服务器1000的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,服务器1000只涉及存储器1200、通信装置1400以及处理器1100。
通信网络2000可以是无线通信网络也可以是有线通信网络,可以是局域网也可以是广域网。在图1所示的服务器集群中,多个服务器1000之间可以通过网络2000进行通信。此外,多个服务器1000之间通信所基于的网络2000可以是同一个,也可以是不同的。
图1所示的服务器集群仅是解释性的,决不是为了要限制本发明、其应用或用途,在实际应用当中,还可以包含其他数量的服务器集群,例如,还可以包括2个服务器集群,3个服务器集群,5个服务器集群,甚至更多,在此不做任何限定。应用于本发明的实施例中,服务器1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例中提供的任意一项资源调度方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<第一实施例>
<方法>
图2是根据一个实施例的资源调度方法的示意性流程图。
参照图2所示,本实施例的资源调度方法可以是由资源调度装置实施,也可以是由资源调度设备实施,该资源调度装置或者资源调度设备具体可以是分布在提供资源的设备上,本实施例的资源调度方法可以包括如下步骤S2100~步骤S2300:
步骤S2100,获取目标应用对象的资源需求信息。
目标应用对象可以是需要进行资源调度的应用对象,通常,根据业务类型的不同,可以将目标应用对象划分为在线类应用、离线类应用和平台类应用,即,该实施例中,目标应用对象可以是在线类应用、离线类应用或平台类应用中的一种。
目标应用对象的资源需求信息至少可以表征目标应用对象对所需要的资源的需求信息,该资源需求信息可以是弹性资源组,在此,由于弹性资源组用于描述目标应用对象所需的资源请求信息、资源预估信息以及需求优先级,对应的,该资源需求信息至少可以包括目标应用对象的资源请求信息、资源预估信息以及需求优先级。
以上资源请求信息至少可以表征目标应用对象所需的资源的类型,以上资源预估信息至少可以表征目标应用对象所需的资源的预估值,该实施例中,对于目标应用对象而言,所需的资源往往可能有多种,在此,为了区分不同种类的资源,资源请求信息中可以携带所需资源的类型,以及每种类型的资源对应的具体数量等,对应的,资源预估信息中也可以携带所需资源的类型,以及每种类型的资源对应的预估值等,当然,资源请求信息、资源预估信息中还可以包含目标应用对象对所需的资源的其他信息,在此不做限定。
以上需求优先级用于表征不同的目标应用对象之间的优先级,需求优先级包括在线类优先级、离线类优先级以及平台类优先级,当目标应用应用对象是在线类应用时,对应的是在线类优先级;当目标应用对象是离线类应用时,对应的是离线类优先级;当目标应用对象是平台类应用时,对应的是平台类优先级。可以根据目标应用对象本身的资源属性平台的资源预估信息、非平台的资源请求信息以及目标应用对象的类型设置需求优先级,例如,可以是在线类优先级高于离线类优先级,离线类优先级高于平台类优先级,在此不做限定。
在一个例子中,该步骤S2100中获取目标应用对象的资源需求信息可以包括如下步骤S2110~S2120:
步骤S2110,当目标应用对象是在线类应用或离线类应用时,根据目标应用对象设置资源请求信息以及需求优先级,并根据资源请求信息获取资源预估信息。
在本例中,在目标应用对象是在线类应用的情况下,可以直接设置该在线类应用对应的资源请求信息、需求优先级,并根据资源请求信息计算资源预估信息。
在本例中,在目标应用对象是离线类应用的情况下,也可以直接设置该离线类应用对应的资源请求信息、需求优先级,并根据资源请求信息计算资源预估信息。
该例子中,在目标应用对象是在线类应用或离线类应用的情况下,根据资源请求信息获取资源预估信息的步骤可以包括:
根据资源请求信息以及目标应用对象的最小保证负载、预测负载,获取资源预估信息。
该例子中,可以根据以下公式计算目标应用对象的资源预估信息predict:
predict=request*max{g_load,p_load} (1)
其中,max{g_load,p_load}表示取g_load,p_load之间的最大值;request表示目标应用对象的资源请求信息;g_load表示目标应用对象的最小保证负载,g_load可以是根据工程经验或者实验仿真结果设置的常数值;p_load表示目标应用对象的预测负载,p_load可以是根据目标应用对象的历史负载信息获取的,具体的,p_load可以是根据预设的时间单位基于历史负载信息加权平均得到的值,当预设的时间单位是一小时,当前一小时为T1,该历史负载信息l_load可以包括上一小时T2的负载信息load1、当前一小时T1的负载信息load2、前一天下一小时T3的负载信息load3以及7天前下一小时T4的负载信息load4,可以根据以下公式计算历史负载信息p_load:
其中,a1、a2、a3、a4分别是对应load1、load2、load3以及load4的权重值,可以根据具体应用场景设置a1、a2、a3、a4。
步骤S2120,当目标应用对象是平台类应用时,根据目标应用对象设置资源预估信息以及需求优先级,并根据资源预估信息获取资源请求信息。
在本例中,在目标应用对象是平台类应用的情况下,可以直接设置该平台类应用的资源预估信息、需求优先级,并根据资源预估信息计算资源请求信息。
该例子中,当目标应用对象是平台类应用的情况下,根据资源预估信息获取资源请求信息的步骤可以包括:
根据目标应用对象的资源预估信息、支持提供资源的设备的固有资源以及可获取的其他应用对象的资源预估信息,获取目标应用对象的资源请求信息。
以上其他应用对象可以是包括除目标应用对象之外的其他在线类应用、其他离线类应用和其他平台类应用中的一种或多种。
该例子中,可以根据以下公式计算目标应用对象的资源请求信息request:
其中,中,n表示当前设备上已经在运行的在线类应用的数目,prod_predictk表示当前设备上已经在运行的第k个在线类应用的资源预估信息,即计算当前设备上所有已经在运行的在线类应用的资源预估信息;中,m表示当前设备上已经在运行的离线类应用的数目,non_prod_predictk表示当前设备上已经在运行的第k个离线类应用的资源预估信息,即计算当前设备上所有已经在运行的离线类应用的资源预估信息;中,l表示当前设备上已经在运行的平台类应用的数目,platform_predictk表示当前设备上已经在运行的第k个平台类应用的资源预估信息,即计算当前设备上所有已经在运行的平台类应用的资源预估信息,以及待分配的目标应用对象的资源预估信息predict;host_resource表示支持提供资源的设备的固有资源。
在本例中,可以在每一次目标应用对象分配结束之后,重新基于上述的公式计算平台类应用的资源请求信息request,以使得对于整体的资源评分更加准确。
通过步骤S2100获取目标应用对象的资源需求信息之后,可以结合后续步骤根据目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向目标应用对象提供资源的目标设备,并生成对应的资源分配信息,进而将资源分配信息发送给目标设备,使得目标设备根据资源分配信息向目标应用对象提供资源,提高资源利用率。
在获取目标应用对象的资源需求信息之后,进入:
步骤S2200,根据目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向目标应用对象提供资源的目标设备,生成对应的资源分配信息。
支持提供资源的备选设备为能够提供资源的设备,备选设备可以是计算机集群中的全部设备或者部分设备,在此不做限定。
目标设备为最终向目标应用对象分配资源的设备,目标设备可以是备选设备中的任意一个或多个,在此不做限定。
资源分配信息至少包括目标应用对象在每个目标设备上的资源分配指示以及服务质量配置参数。
在一个例子中,参照图3所示,该步骤S2200中在多个支持提供资源的备选设备中,分配用于向目标应用对象提供资源的目标设备的步骤可以包括如下步骤S2210~S2220:
步骤S2210,根据目标应用对象的资源需求信息,获取每个备选设备的资源评分。
在例子中,可以根据目标应用对象的资源需求信息,获得每个备选设备的资源评分,以根据目标应用对象的实际要求的资源将资源评分由高到低分配一个或多个目标设备。
在一个例子中,该步骤S2210中根据目标应用对象的资源需求信息,获取每个备选设备的资源评分的步骤可以包括步骤S2211~S2212:
步骤S2211,当需求优先级是在线类优先级时,根据目标应用对象的资源请求信息以及备选设备上其他应用对象的资源请求信息、备选设备的第一资源状态参数,获取备选设备的资源评分。
以上备选设备的第一资源状态参数至少可以包括备选设备的均衡性指标、资源稀缺性指标、抢占代价指标、应用多样性指标以及应用偏好性指标。
该例子中,可以根据以下方法计算备选设备的资源评分score:
其中,中,n表示当前设备上已经在运行的在线类应用的数目,prod_requestk表示当前设备上已经在运行的第k个在线类应用的资源请求信息,即计算当前设备上所有已经在运行的在线类应用的资源请求信息,以及待分配的目标应用对象的资源请求信息;balance表示备选设备的均衡性指标,例如可以是备选设备的CPU资源和/或备选设备的存储资源等的均衡性越好,该备选设备的均衡性指标balance越高;scarcity表示备选设备的资源稀缺性指标,例如可以是计算机集群中只要少量的备选设备具有图像处理器(GPU)或者FPGA,则该少量的备选设备的资源稀缺性指标scarcity就越高;preemption_cost表示备选设备的抢占代价指标,具体可以为备选设备上应用被抢占资源后的代价,例如可以是应用被抢占后资源多久可以重启应用等;priority_diversity表示备选设备的应用多样性指标,例如可以是备选设备上不同优先级的应用之间占比越均衡,备选设备的应用多样性指标priority_diversity越好;preference表示备选设备的应用偏好性指标,例如可以是备选设备上已运行应用与待运行应用之间的关联,该关联例如可以是互补应用、彼此调用等;函数用于计算所有输入参数的加权平均作为备选设备的资源评分score,具体的,可以根据以下公式计算备选设备的资源评分score:
其中,以上公式中的b1、b2、b3、b4、b5、b6分别是对应于balance、scarcity、preemption_cost、priority_diversity、preference的权重值,可以根据具体应用场景设置b1、b2、b3、b4、b5、b6。
步骤S2212,当需求优先级是离线类优先级或者平台类优先级时,根据目标应用对象的资源请求信息以及备选设备上其他应用对应的资源请求信息、备选设备的第二资源状态参数,获取备选设备的资源评分。
以上备选设备的第二资源状态参数至少包括备选设备的均衡性指标以及抢占代价指标。
该例子中,可以根据以下方式计算备选设备的资源评分score:
其中,中,m表示当前设备上已经在运行的离线类应用的数目,或者平台类应用的数目,即包含了离线类应用和平台类应用的资源请求信息。balance表示备选设备的均衡性指标,例如可以是备选设备的CPU资源和/或备选设备的存储资源等的均衡性越好,该备选设备的均衡性指标balance越高;preemption_cost表示备选设备的抢占代价指标,具体可以为备选设备上应用被抢占资源后的代价,例如可以是应用被抢占后资源多久可以重启应用等;函数用于计算所有输入参数的加权平均作为备选设备的资源评分score,具体的,可以根据以下公式计算备选设备的资源评分score:
步骤S2220,根据每个备选设备的资源评分的降序排序次序,分配目标设备。
根据以上步骤S2210得到每个备选设备的资源评分之后,便可根据该步骤S2220将每个备选设备的资源评分进行降序排序得到降序排序次序,并根据目标应用对象所需资源的种类,依次从资源评分由高到低选取一个或多个备选设备作为目标设备,进而将资源分配信息发送给目标设备,以使得目标设备根据资源分配信息向目标应用对象提供资源,提高资源利用率。
在本实施例中,根据以上步骤S2200根据目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向目标应用对象提供资源的目标设备,并生成对应的资源分配信息,进而结合后续步骤将资源分配信息发送给目标设备,使得目标设备根据资源分配信息向目标应用对象提供资源,提高资源利用率。
在生成对应的资源分配信息之后,进入:
步骤S2300,将资源分配信息发送给目标设备,以触发目标设备根据资源分配信息,向目标应用对象提供资源。
资源分配信息至少包括目标应用对象在每个目标设备上的资源分配指示以及服务质量配置参数。
在本实施例中,可以是在将资源分配信息发送给目标设备,以控制目标设备根据资源分配信息,向目标应用对象提供资源,也可以是目标设备接收到资源分配信息之后,自行根据资源分配信息,向目标应用对象提供资源。
在一个例子中,该步骤S2300中触发目标设备根据资源分配信息,向目标应用对象提供资源可以包括:
触发目标设备根据资源分配指示以及服务质量配置参数,获取目标设备的服务质量参数,以设置目标设备向目标应用对象提供资源。
服务质量参数至少包括处理器服务质量参数、存储器服务质量参数、网络服务质量参数、读写服务质量参数、控制服务质量参数其中之一。
该例子中,获得目标设备的服务质量参数之后,目标设备可以根据Cgroup(Control Groups)设置目标设备的服务质量参数,该Cgroup是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制,其为资源管理提供了一个统一的框架,在例子中,可以通过设置Cgroup对应的层级结构以向目标应用对象提供资源。
该例子中,可以设置计算周期,并且每到一个计算周期即计算目标设备的服务质量参数,以及采集目标设备当前的资源状态信息以更新资源分配状态。
在一个例子中,处理器服务质量参数至少包括在线业务组的处理资源限制指示以及离线业务组的处理资源限制指示。
以上在线业务组包括与在线类应用相关的任务,以上离线业务组包括与离线类应用以及平台类应用相关的任务。
服务质量配置参数中至少包括处理负载控制指示、最小负载限制以及处理配置权重。
该例子中,处理器服务质量参数还可以包括cpu.shares,该cpu.shares可以是根据具体应用场景或者具体应用需求设定的一个固定数值,例如,该cpu.shares可以是1024,又例如,该cpu.shares也可以是2,在此不做限定。
该例子中,获取目标设备的服务质量参数可以包括如下步骤S2311~S2312:
步骤S2311,将在线业务组的处理资源限制指示为不受限。
步骤S2312,根据目标设备的处理器资源、处理负载控制指示、最小负载限制以及目标设备的在线业务组的在线处理负载,获取处理资源限制指示。
该步骤S2312中,可以根据以下公式计算处理资源限制指示:
其中,non_prod_cpu_limit表示离线业务组的处理资源限制指示;host_cpu表示目标设备的处理器资源;cpu_ctrl_load表示处理负载控制指示;m_limit表示最小负载限制;prod_cpu_load表示目标设备的在线业务组的在线处理负载,具体可以是根据在线业务组所包括的应用对象的资源预测信息、应用处理负载以及处理配置权重获取的,例如可以是计算在线业务组所包括的应用对象的资源预测信息、Cgoup反馈的应用处理负载以及处理配置权重的加权平均获得每个应用的prod_cpu_load;中,n表示当前设备上已经在运行的在线类应用的数目,prod_cpu_loadk表示当前设备上第k个在线类应用的在线处理负载,即计算当前设备上所有已经在运行的在线类应用的在线处理负载。
在一个例子中,存储器服务质量参数至少包括在线业务组的存储资源限制指示以及离线业务组的存储资源限制指示。
以上在线业务组包括与在线类应用相关的任务,离线业务组包括与离线类应用以及平台类应用相关的任务。
服务质量配置参数中至少包括存储负载控制指示。
该例子中,获取目标设备的服务质量参数可以进一步包括如下步骤S2321~S2322:
步骤S2321,将在线业务组的存储资源限制指示为不受限。
步骤S2322,根据目标设备的存储器资源、存储负载控制指示以及目标设备的在线业务组的在线存储负载,获取存储资源限制指示。
该步骤S2322中,可以根据以下公式计算存储资源限制指示:
其中,non_prod_mem_limit表示离线业务组的存储资源限制指示;host_mem表示目标设备的存储器资源;mem_ctrl_load表示存储负载控制指示,用于避免目标设备的负载过高而引起的业务不稳定;prod_mem_load表示目标设备的在线业务组的在线存储负载;中,n表示当前设备上已经在运行的在线类应用的数目,prod_mem_loadk表示当前设备上第k个在线类应用的在线存储负载,即计算当前设备上所有已经在运行的在线类应用的在线存储负载。
在一个例子中,网络服务质量参数至少包括网络带宽限制指示以及传输服务质量指示。
该例子中,获取目标设备的服务质量参数可以进一步包括如下步骤S2330:
步骤S2330,区分目标设备上的控制组、在线业务组以及离线业务组,分别设置网络服务质量参数。
控制组包括与控制相关的任务。
在线业务组包括与在线类应用相关的任务,离线业务组包括与离线类应用以及平台类应用相关的任务。
该例子中,可以是区分目标设备上的控制组、在线业务组以及离线业务组,并分别设置控制组的网络带宽限制指示和传输服务质量指示、在线业务组的网络带宽限制指示和传输服务质量指示,以及离线业务组的网络带宽限制指示和传输服务质量指示。
以上网络带宽限制指示可以包括网络带宽的最大约束,或者是网络带宽的最小约束中的至少一个,该网络带宽的最大约束,以及网络带宽的最小约束根据具体应用场景下的工程经验或者实验仿真结果选取效果较优的数值。
以上传输服务质量指示可以包括在网络链路上标注金、银、铜,以用于区分控制组、在线业务组以及离线业务组的传输服务质量。例如可以是在控制组的网络链路上标注“金”作为传输服务质量指示,在在线业务组的网络链路上标注“银”作为传输服务质量指示,以及在离线业务组的网络链路上标注“铜”作为传输服务质量指示,只要能区别控制组、在线业务组以及离线业务组的传输服务质量即可,在此不做限定。
在一个例子中,读写服务质量参数至少包括与存储相关的读写限制指示。
该例子中,获取目标设备的服务质量参数可以进一步包括如下步骤S2340:
步骤S2340,区分目标设备上的在线业务组以及离线业务组,分别设置读写服务质量参数。
在线业务组包括与在线类应用相关的任务,离线业务组包括与离线类应用以及平台类应用相关的任务。
该例子中,可以是区分目标设备上的在线业务组以及离线业务组,并分别设置各自对应的与存储相关的读写限制指示,该与存储相关的读写限制指示包括读写比特率(bits per second,bps)和IOPS(Input/Output Operations Per Second)限制中的至少一个,该读写比特率和IOPS限制可以是根据具体的目标设备的存储介质设置,在此不做限定。
在一个例子中,控制服务质量参数至少包括处理器链路控制指示以及存储器带宽比例。
该处理器链路控制指示用于将目标设备与目标应用对象之间建立连接。
该存储器带宽比例为单位时间里存储器所存取的信息量的比例。
该例子中,获取目标设备的服务质量参数可以包括如下步骤S2350:
步骤S2350,区分目标设备上的在线业务组以及离线业务组,分别设置控制服务质量参数。
在线业务组包括与在线类应用相关的任务,离线业务组包括与离线类应用以及平台类应用相关的任务。
该例子中,可以是区分目标设备上的在线业务组以及离线业务组,并分别设置各自对应的处理器链路控制指示(CPU LLC)以及存储器带宽限制比例。该处理器链路控制指示以及存储器带宽限制比例可以是根据具体的目标设备的机型参数设置,在此不做限定。
在一个例子中,资源分配指示至少包括分配在目标设备上的应用对象的资源请求信息以及需求优先级。
服务质量参数还包括目标设备上每个应用对象的对象评分,该应用对象的对象评分用于在目标设备被触发实施资源抢占时选取被抢占资源的应用对象。
该例子中,获取目标设备的服务质量参数可以进一步包括如下步骤S2360:
步骤S2360,根据目标设备上每个应用对象的资源请求信息、应用存储负载、运行时长、需求优先级以及目标设备的物理存储资源,获取应用对象的对象评分。
该例子中,可以根据以下方式计算应用对象的对象评分:
memory_badness=g(mem_load,mem_limit,host_mem,run_time,priority)(10)
其中,memory_badness表示应用对象的对象评分;mem_limit表示应用对象的资源请求信息;mem_load表示应用对象的应用存储负载,可以是根据应用对象的实际负载除以应用对象的资源请求信息得到该应用对象的应用存储负载;host_mem表示目标设备的物理存储资源,run_time表示应用对象的运行时长,priority表示应用对象的需求优先级;g(mem_load,mem_limit,host_mem,run_time,priority)函数用于计算所有输入参数的加权平均作为应用对象的对象评分,具体的,可以根据以下公式计算应用对象的对象评分memory_badness:
其中,以上公式中的d1、d2、d3、d4、d5分别是对应于mem_load、mem_limit、host_mem、run_time、priority的权重值,可以根据具体应用场景设置d1、d2、d3、d4、d5。
在例子中,可以是在应用对象抢占资源的情况下,根据应用对象的对象评分的排序次序,选择需要出让资源的应用对象,以使得选择出的应用对象释放资源供其他应用对象抢占。
<资源调度装置>
在本实施例中,还提供一种资源调度装置4000,如图4所示,资源调度装置4000包括需求获取单元4100、资源分配单元4200以及资源提供单元4300,用于实施本实施例中提供的资源调度方法,在此不再赘述。
需求获取单元4100,用于获取目标应用对象的资源需求信息,目标应用对象是在线类应用、离线类应用或平台类应用中的一种。
资源分配单元4200,用于根据所述目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备,生成对应的资源分配信息。
资源提供单元4300,用于将所述资源分配信息发送给所述目标设备,以触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源。
在一个实施例中,所述资源需求信息至少包括所述目标应用对象的资源请求信息、资源预估信息以及需求优先级;所述需求优先级包括在线类优先级、离线类优先级以及平台类优先级。
需求获取单元4100,还用于当所述目标应用对象是所述在线类应用或所述离线类应用时,根据所述目标应用对象设置所述资源请求信息以及所述需求优先级,并根据所述资源请求信息获取所述资源预估信息;以及,当所述目标应用对象是所述平台类应用时,根据所述目标应用对象设置所述资源预估信息以及所述需求优先级,并根据所述资源预估信息获取所述资源请求信息。
在一个实施例中,需求获取单元4100,还用于根据所述资源请求信息以及所述目标应用对象的最小保证负载、预测负载,获取所述资源预估信息。
所述预测负载是根据所述目标应用对象的历史负载信息获取的。
在一个实施例中,需求获取单元4100,还用于根据所述目标应用对象的资源预估信息、支持提供资源的设备的固有资源以及可获取的其他应用对象的资源预估信息,获取所述目标应用对象的资源请求信息。
在一个实施例中,资源分配单元4200还用于根据所述目标应用对象的资源需求信息,获取每个备选设备的资源评分;根据每个所述备选设备的资源评分的降序排序次序,分配所述目标设备。
在一个实施例中,所述资源需求信息至少包括所述目标应用对象的资源请求信息、资源预估信息以及需求优先级;所述需求优先级包括在线类优先级、离线类优先级以及平台类优先级。
资源分配单元4200,还用于当所述需求优先级是在线类优先级时,根据所述目标应用对象的资源请求信息以及所述备选设备上其他应用对应的资源请求信息、所述备选设备的第一资源状态参数,获取所述备选设备的资源评分。
所述备选设备的第一资源状态参数至少包括所述备选设备的均衡性指标、资源稀缺性指标、抢占代价指标、应用多样性指标以及应用偏好性指标。
资源分配单元4200,还用于当所述需求优先级是离线类优先级或者平台类优先级时,根据所述目标应用对象的资源请求信息以及所述备选设备上其他应用对应的资源请求信息、所述备选设备的第二资源状态参数,获取所述备选设备的资源评分。
所述备选设备的第二资源状态参数至少包括所述备选设备的均衡性指标以及抢占代价指标。
在一个实施例中,所述资源分配信息至少包括所述目标应用对象在每个所述目标设备上的资源分配指示以及服务质量配置参数。
资源提供单元4300,还用于触发所述目标设备根据所述资源分配指示以及所述服务质量配置参数,获取所述目标设备的服务质量参数,以设置所述目标设备向所述目标应用对象提供资源。
所述服务质量参数至少包括处理器服务质量参数、存储器服务质量参数、网络服务质量参数、读写服务质量参数、控制服务质量参数其中之一。
在一个实施例中,所述处理器服务质量参数至少包括在线业务组的处理资源限制指示以及离线业务组的处理资源限制指示;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
所述服务质量配置参数中至少包括处理负载控制指示、最小负载限制以及处理配置权重。
资源提供单元4300,还用于将所述在线业务组的所述处理资源限制指示为不受限;以及,根据所述目标设备的处理器资源、所述处理负载控制指示、所述最小负载限制以及所述目标设备的所述在线业务组的在线处理负载,获取所述处理资源限制指示。
所述在线处理负载是根据所述在线业务组所包括的应用对象的所述资源预测信息、应用处理负载以及所述处理配置权重获取的。
在一个实施例中,所述存储器服务质量参数至少包括在线业务组的存储资源限制指示以及离线业务组的存储资源限制指示;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
所述服务质量配置参数中至少包括存储负载控制指示。
资源提供单元4300,还用于将所述在线业务组的所述存储资源限制指示为不受限;根据所述目标设备的存储器资源、存储负载控制指示以及所述目标设备的所述在线业务组的在线存储负载,获取所述存储资源限制指示。
在一个实施例中,所述网络服务质量参数至少包括网络带宽限制指示以及传输服务质量指示。
资源提供单元4300,还用于区分所述目标设备上的控制组、在线业务组以及离线业务组,分别设置所述网络服务质量参数。
所述控制组包括与控制相关的任务;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
在一个实施例中,所述读写服务质量参数至少包括与存储相关的读写限制指示。
资源提供单元4300,还用于区分所述目标设备上的在线业务组以及离线业务组,分别设置所述读写服务质量参数。
所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
在一个实施例中,所述控制服务质量参数至少包括处理器链路控制指示以及存储器带宽比例。
资源提供单元4300,还用于区分所述目标设备上的在线业务组以及离线业务组,分别设置所述控制服务质量参数。
所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
在一个实施例中,所述资源分配指示至少包括分配在所述目标设备上的应用对象的资源请求信息以及需求优先级。
所述服务质量参数还包括所述目标设备上每个所述应用对象的对象评分;所述应用对象的对象评分用于在所述目标设备被触发实施资源抢占时选取被抢占资源的所述应用对象。
资源提供单元4300,还用于根据所述目标设备上每个所述应用对象的所述资源请求信息、应用存储负载、运行时长、所述需求优先级以及所述目标设备的物理存储资源,获取所述应用对象的对象评分。
<资源调度设备>
在本实施例中,还提供一种资源调度设备5000,如图5所示,包括:
存储器5100,用于存储可执行指令;
处理器5200,用于根据所述可执行指令的控制,运行所述资源调度设备执行如本实施例中提供的资源调度方法。
在本实施例中,资源调度设备5000可以是服务器。例如,资源调度设备5000可以是如图1所示的服务器1000。
资源调度设备5000还可以包括其他的装置,例如,如图1所示的服务器1000,还可以包括输入装置、通信装置、接口装置以及显示装置等。
<可读存储介质>
在本实施例中,还提供一种可读存储介质,可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机运行时,执行如本实施例所述的资源调度方法。
在本实施例中,可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
<第二实施例>
在本实施例中,还提供一种资源调度***6000,如图6所示,包括:
多个用于提供资源的设备6100;
第一实施例中提供的资源调度装置4000或资源调度设备5000。
上述设备6100例如可以是用于提供资源的设备6100A和用于提供资源的设备6100B,该多个用于提供资源的设备6100可以是一个服务器集群里面的设备,也可以是分别属于不同服务器集群里面的设备,该多个用于提供资源6100的设备均设置有Slave组件,该多个用于提供资源的设备6100中至少一个设置有Master组件。
在本实施例中,用于提供资源的设备6100的数量可以根据实际场景确定,在此不做任何限定。
上述资源调度装置4000或资源调度设备5000可以是分布在提供资源的设备6100上。
<例子>
以下将进一步举例说明本实施例中提供的资源调度***6000实施的资源调度方法。
在本例中,资源调度***6000包括多个用于提供资源的设备6100和资源调度装置4000,该设备6100可以是具有主(Master)组件和从(Slave)组件的服务器,该资源调度装置4000可以分布在多个该设备6100上。例如,如图7所示,可以选取包含Master组件的设备6100作为主设备,以及,选取多个包含Slave组件的设备6100作为从设备,通过该主设备中的资源预估模块和服务质量配置(Qos SLo configs)模块实现资源调度装置4000中需求获取单元对应的功能,以及通过主设备中的资源匹配算分模块和资源分配超卖模块实现资源调度装置4000中资源分配单元对应的功能,通过从设备中的服务质量(Quality ofService,Qos)调度模块、层级控制(Cgroup)模块和度量(Metric)采集模块实现资源调度装置4000中资源提供单元对应的功能。基于图7所示的主设备和从设备,对应的资源调度方法包括:步骤S201-S208。
步骤S201,资源预估模块获取应用控制设备上的目标应用对象的资源需求信息。
资源需求信息可以是弹性资源组,该资源需求信息中至少包括资源请求信息、资源预估信息以及需求优先级;需求优先级包括在线类优先级、离线类优先级以及平台类优先级。
目标应用对象是在线类应用、离线类应用或平台类应用中的一种。
该步骤S201中,应用控制设备可以利用业务AM(Application Master)通过弹性资源组描述目标应用对象。
步骤S202,资源预估模块判断目标应用对象是否为在线类应用或离线类应用,如果是在线类应用或离线类应用,进入步骤S203,否则,进入步骤S204。
步骤S203,资源预估模块根据目标应用对象设置资源请求信息以及需求优先级,并根据资源请求信息以及服务质量配置模块发送的最小保证负载、通信模块A发送的历史负载信息,获取资源预估信息。
以上通信模块A发送的历史负载信息用于确定预测负载。
步骤S204,资源预估模块根据目标应用对象设置资源预估信息以及需求优先级,并根据资源预估信息获取资源请求信息。
步骤S205,资源匹配算分模块根据目标应用对象的资源需求信息,获取每个从设备的资源评分。
步骤S206,资源匹配超卖模块根据每个从设备的资源评分的降序排序次序,分配目标从设备,并生成对应每个目标从设备的资源分配指示以及服务质量配置参数。
步骤S207,通信模块A与通信模块B通信,将对应每个目标从设备的资源分配指示以及服务质量配置参数发送给目标从设备的服务质量调度模块。
步骤S208,服务质量调度模块根据资源分配指示以及服务质量配置参数,获取自身的服务质量参数。
步骤S209,层级控制模块通过设置对应的层级Cgroup参数以设置服务质量参数,并向目标应用对象提供资源。
步骤S210,度量采集模块采集新的指标信息通过通信模块B回传给主设备。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (17)
1.一种资源调度方法,其中,包括:
获取目标应用对象的资源需求信息,目标应用对象是在线类应用、离线类应用或平台类应用中的一种;
根据所述目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备,生成对应的资源分配信息;
将所述资源分配信息发送给所述目标设备,以触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源。
2.根据权利要求1所述的方法,其中,
所述资源需求信息至少包括所述目标应用对象的资源请求信息、资源预估信息以及需求优先级;所述需求优先级包括在线类优先级、离线类优先级以及平台类优先级;
所述获取目标应用对象的资源需求信息的步骤包括:
当所述目标应用对象是所述在线类应用或所述离线类应用时,根据所述目标应用对象设置所述资源请求信息以及所述需求优先级,并根据所述资源请求信息获取所述资源预估信息;
当所述目标应用对象是所述平台类应用时,根据所述目标应用对象设置所述资源预估信息以及所述需求优先级,并根据所述资源预估信息获取所述资源请求信息。
3.根据权利要求2所述的方法,其中,当所述目标应用对象是所述在线类应用或所述离线类应用时,根据所述资源请求信息获取所述资源预估信息的步骤包括:
根据所述资源请求信息以及所述目标应用对象的最小保证负载、预测负载,获取所述资源预估信息;
其中,所述预测负载是根据所述目标应用对象的历史负载信息获取的。
4.根据权利要求2所述的方法,其中,当所述目标应用对象是所述平台类应用时,根据所述资源预估信息获取所述资源请求信息的步骤包括:
根据所述目标应用对象的资源预估信息、支持提供资源的设备的固有资源以及可获取的其他应用对象的资源预估信息,获取所述目标应用对象的资源请求信息。
5.根据权利要求1所述的方法,其中,所述在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备的步骤包括:
根据所述目标应用对象的资源需求信息,获取每个备选设备的资源评分;
根据每个所述备选设备的资源评分的降序排序次序,分配所述目标设备。
6.根据权利要求5所述的方法,其中,
所述资源需求信息至少包括所述目标应用对象的资源请求信息、资源预估信息以及需求优先级;所述需求优先级包括在线类优先级、离线类优先级以及平台类优先级;
所述根据所述目标应用对象的资源需求信息,获取每个备选设备的资源评分的步骤包括:
当所述需求优先级是在线类优先级时,根据所述目标应用对象的资源请求信息以及所述备选设备上其他应用对应的资源请求信息、所述备选设备的第一资源状态参数,获取所述备选设备的资源评分;
其中,所述备选设备的第一资源状态参数至少包括所述备选设备的均衡性指标、资源稀缺性指标、抢占代价指标、应用多样性指标以及应用偏好性指标;
当所述需求优先级是离线类优先级或者平台类优先级时,根据所述目标应用对象的资源请求信息以及所述备选设备上其他应用对应的资源请求信息、所述备选设备的第二资源状态参数,获取所述备选设备的资源评分;
其中,所述备选设备的第二资源状态参数至少包括所述备选设备的均衡性指标以及抢占代价指标。
7.根据权利要求1所述的方法,其中,
所述资源分配信息至少包括所述目标应用对象在每个所述目标设备上的资源分配指示以及服务质量配置参数;
所述触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源的步骤包括:
触发所述目标设备根据所述资源分配指示以及所述服务质量配置参数,获取所述目标设备的服务质量参数,以设置所述目标设备向所述目标应用对象提供资源;
其中,所述服务质量参数至少包括处理器服务质量参数、存储器服务质量参数、网络服务质量参数、读写服务质量参数、控制服务质量参数其中之一。
8.根据权利要求7所述的方法,其中,
所述处理器服务质量参数至少包括在线业务组的处理资源限制指示以及离线业务组的处理资源限制指示;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务;
所述服务质量配置参数中至少包括处理负载控制指示、最小负载限制以及处理配置权重;
所述获取所述目标设备的服务质量参数的步骤包括:
将所述在线业务组的所述处理资源限制指示为不受限;
根据所述目标设备的处理器资源、所述处理负载控制指示、所述最小负载限制以及所述目标设备的所述在线业务组的在线处理负载,获取所述处理资源限制指示;
其中,所述在线处理负载是根据所述在线业务组所包括的应用对象的所述资源预测信息、应用处理负载以及所述处理配置权重获取的。
9.根据权利要求7所述的方法,其中,
所述存储器服务质量参数至少包括在线业务组的存储资源限制指示以及离线业务组的存储资源限制指示;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务;
所述服务质量配置参数中至少包括存储负载控制指示;
所述获取所述目标设备的服务质量参数的步骤包括:
将所述在线业务组的所述存储资源限制指示为不受限;
根据所述目标设备的存储器资源、存储负载控制指示以及所述目标设备的所述在线业务组的在线存储负载,获取所述存储资源限制指示。
10.根据权利要求7所述的方法,其中,
所述网络服务质量参数至少包括网络带宽限制指示以及传输服务质量指示;
所述获取所述目标设备的服务质量参数的步骤包括:
区分所述目标设备上的控制组、在线业务组以及离线业务组,分别设置所述网络服务质量参数;
其中,所述控制组包括与控制相关的任务;所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
11.根据权利要求7所述的方法,其中,
所述读写服务质量参数至少包括与存储相关的读写限制指示;
所述获取所述目标设备的服务质量参数的步骤包括:
区分所述目标设备上的在线业务组以及离线业务组,分别设置所述读写服务质量参数;
其中,所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
12.根据权利要求7所述的方法,其中,
所述控制服务质量参数至少包括处理器链路控制指示以及存储器带宽比例;
所述获取所述目标设备的服务质量参数的步骤包括:
区分所述目标设备上的在线业务组以及离线业务组,分别设置所述控制服务质量参数;
其中,所述在线业务组包括与所述在线类应用相关的任务,所述离线业务组包括与所述离线类应用以及平台类应用相关的任务。
13.根据权利要求7所述的方法,其中,
所述资源分配指示至少包括分配在所述目标设备上的应用对象的资源请求信息以及需求优先级;
所述服务质量参数还包括所述目标设备上每个所述应用对象的对象评分;所述应用对象的对象评分用于在所述目标设备被触发实施资源抢占时选取被抢占资源的所述应用对象;
所述获取所述目标设备的服务质量参数的步骤包括:
根据所述目标设备上每个所述应用对象的所述资源请求信息、应用存储负载、运行时长、所述需求优先级以及所述目标设备的物理存储资源,获取所述应用对象的对象评分。
14.一种资源调度装置,其中,包括:
需求获取单元,用于获取目标应用对象的资源需求信息,目标应用对象是在线类应用、离线类应用或平台类应用中的一种;
资源分配单元,用于根据所述目标应用对象的资源需求信息,在多个支持提供资源的备选设备中,分配用于向所述目标应用对象提供资源的目标设备,生成对应的资源分配信息;
资源提供单元,用于将所述资源分配信息发送给所述目标设备,以触发所述目标设备根据所述资源分配信息,向所述目标应用对象提供资源。
15.一种资源调度设备,其中,包括:
存储器,用于存储可执行指令;
处理器,用于根据所述可执行指令的控制,运行所述资源调度设备执行如权利要求1-13所述的资源调度方法。
16.一种可读存储介质,其中,所述可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机运行时,执行如权利要求1-13所述的资源调度方法。
17.一种资源调度***,其中,包括:
多个用于提供资源的设备;
如权利要求14所述的资源调度装置或如权利要求15所述的资源调度设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910091106.XA CN111506414B (zh) | 2019-01-30 | 2019-01-30 | 资源调度方法、装置、设备、***及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910091106.XA CN111506414B (zh) | 2019-01-30 | 2019-01-30 | 资源调度方法、装置、设备、***及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506414A true CN111506414A (zh) | 2020-08-07 |
CN111506414B CN111506414B (zh) | 2023-04-25 |
Family
ID=71863794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910091106.XA Active CN111506414B (zh) | 2019-01-30 | 2019-01-30 | 资源调度方法、装置、设备、***及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506414B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590317A (zh) * | 2021-07-27 | 2021-11-02 | 杭州朗和科技有限公司 | 离线业务的调度方法、装置、介质和计算设备 |
CN113703962A (zh) * | 2021-07-22 | 2021-11-26 | 北京华胜天成科技股份有限公司 | 云资源分配方法、装置、电子设备及存储介质 |
WO2022222755A1 (zh) * | 2021-04-19 | 2022-10-27 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080052719A1 (en) * | 2006-08-23 | 2008-02-28 | Peter John Briscoe | Resource management system |
CN102958166A (zh) * | 2011-08-29 | 2013-03-06 | 华为技术有限公司 | 一种资源分配方法及资源管理平台 |
CN103577268A (zh) * | 2012-08-07 | 2014-02-12 | 复旦大学 | 基于应用负载的自适应资源供应方法 |
CN107968810A (zh) * | 2016-10-20 | 2018-04-27 | 阿里巴巴集团控股有限公司 | 一种服务器集群的资源调度方法、装置和*** |
-
2019
- 2019-01-30 CN CN201910091106.XA patent/CN111506414B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080052719A1 (en) * | 2006-08-23 | 2008-02-28 | Peter John Briscoe | Resource management system |
CN102958166A (zh) * | 2011-08-29 | 2013-03-06 | 华为技术有限公司 | 一种资源分配方法及资源管理平台 |
US20140173620A1 (en) * | 2011-08-29 | 2014-06-19 | Huawei Technologies Co., Ltd. | Resource allocation method and resource management platform |
CN103577268A (zh) * | 2012-08-07 | 2014-02-12 | 复旦大学 | 基于应用负载的自适应资源供应方法 |
CN107968810A (zh) * | 2016-10-20 | 2018-04-27 | 阿里巴巴集团控股有限公司 | 一种服务器集群的资源调度方法、装置和*** |
Non-Patent Citations (3)
Title |
---|
PARMINDER SINGH等: "A study on resource provisioning of multi-tier web applications in cloud computing" * |
杨忙忙: "Spark数据处理平台中资源动态分配技术研究" * |
邓晓衡;关培源;万志文;刘恩陆;罗杰;赵智慧;刘亚军;张洪刚;: "基于综合信任的边缘计算资源协同研究" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022222755A1 (zh) * | 2021-04-19 | 2022-10-27 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及存储介质 |
CN113703962A (zh) * | 2021-07-22 | 2021-11-26 | 北京华胜天成科技股份有限公司 | 云资源分配方法、装置、电子设备及存储介质 |
CN113703962B (zh) * | 2021-07-22 | 2023-08-22 | 北京华胜天成科技股份有限公司 | 云资源分配方法、装置、电子设备及存储介质 |
CN113590317A (zh) * | 2021-07-27 | 2021-11-02 | 杭州朗和科技有限公司 | 离线业务的调度方法、装置、介质和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111506414B (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552161B2 (en) | Cluster graphical processing unit (GPU) resource sharing efficiency by directed acyclic graph (DAG) generation | |
WO2021036936A1 (zh) | 在分布式***中资源及任务的分配方法、装置及*** | |
US11088961B2 (en) | Monitoring data streams and scaling computing resources based on the data streams | |
US9213573B2 (en) | Management of prioritizing virtual machines in an operating environment | |
US10880228B2 (en) | Proactive channel agent | |
WO2020258290A1 (zh) | 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集*** | |
CN107430528A (zh) | 机会性资源迁移以优化资源放置 | |
CN111506414B (zh) | 资源调度方法、装置、设备、***及可读存储介质 | |
CN111694646A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN110782122B (zh) | 数据处理方法、装置及电子设备 | |
KR20190059661A (ko) | 클라우드 서비스를 제공하는 적어도 하나의 클라우드 서버의 컴퓨팅 자원들을 관리하는 전자 장치 및 방법 | |
JP6993495B2 (ja) | クラウド・ネットワーキングにおけるスケーラブルな統計及び分析メカニズム | |
US10031781B2 (en) | Estimating job start times on workload management systems | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
US11144429B2 (en) | Detecting and predicting application performance | |
US20230222004A1 (en) | Data locality for big data on kubernetes | |
US10979531B2 (en) | Pessimistic scheduling for topology optimized workload placement | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
WO2022078060A1 (en) | Tag-driven scheduling of computing resources for function execution | |
US11556387B2 (en) | Scheduling jobs | |
US11487750B2 (en) | Dynamically optimizing flows in a distributed transaction processing environment | |
CN108196936A (zh) | 一种资源调度方法、设备及*** | |
US20240020171A1 (en) | Resource and workload scheduling | |
US20230185601A1 (en) | User-level threading for simulating multi-core processor | |
US20220138614A1 (en) | Explaining machine learning based time series models |
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 |