CN109189563A - 资源调度方法、装置、计算设备及存储介质 - Google Patents
资源调度方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN109189563A CN109189563A CN201810825420.1A CN201810825420A CN109189563A CN 109189563 A CN109189563 A CN 109189563A CN 201810825420 A CN201810825420 A CN 201810825420A CN 109189563 A CN109189563 A CN 109189563A
- Authority
- CN
- China
- Prior art keywords
- computing
- task group
- period
- computing task
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000001105 regulatory effect Effects 0.000 title abstract 3
- 238000013468 resource allocation Methods 0.000 claims abstract description 35
- 230000000737 periodic effect Effects 0.000 claims description 50
- 238000004364 calculation method Methods 0.000 claims description 41
- 230000015654 memory Effects 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000011478 gradient descent method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了资源调度方法、装置、计算设备及存储介质。其中,一种资源调度方法,包括:对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群的资源占用记录,分别预测各计算任务组在第一周期内占用资源的第一数值;获取各计算任务组在第二周期内已占用资源的第二数值;确定各计算任务组的优先级参数;以及根据预测得到的各计算任务组在第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和优先级参数,将集群在第一周期内未分配的计算资源分配给各计算任务组。综上,根据本申请的资源调度方案能够充分利用计算集群的计算资源并提高资源分配调度的合理性。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及资源调度方法、装置、计算设备及存储介质。
背景技术
随着互联网的发展,各种云计算平台被广泛应用。云计算平台可以接收多个用户的任务,并保持一个任务列表。云计算平台通常按照任务列表中任务的优先级排序,依次处理各个任务项。这里,由于云计算平台按照优先级排序处理任务项,任务列表中低优先级的任务可能始终无法被执行。因此,现有的任务处理方式的合理性有待提高。
发明内容
本申请提出了一种资源调度方案,能够提高资源调度的合理性。
根据本申请一个方面,提供一种资源调度方法,包括:对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群的资源占用记录,分别预测所述各计算任务组在所述第一周期内占用资源的第一数值;获取所述各计算任务组在第二周期内已占用资源的第二数值,其中,所述第二周期早于且相邻于所述第一周期;确定所述各计算任务组的优先级参数,所述各计算任务组的优先级参数用于描述各计算任务组的重要程度;以及根据预测得到的所述各计算任务组在所述第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和所述优先级参数,将所述集群在所述第一周期内未分配的计算资源分配给所述各计算任务组。
根据本申请一个方面,提供一种资源调度装置,包括:预测单元,用于对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群的资源占用记录,分别预测所述各计算任务组在所述第一周期内占用资源的第一数值;
获取单元,用于获取所述各计算任务组在第二周期内已占用资源的第二数值,其中,所述第二周期早于且相邻于所述第一周期;优先级确定单元,用于确定所述各计算任务组的优先级参数,所述各计算任务组的优先级参数用于描述各计算任务组的重要程度;以及资源分配单元,用于根据预测得到的所述各计算任务组在所述第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和所述优先级参数,将所述集群在所述第一周期内未分配的计算资源分配给所述各计算任务组。
根据本申请一方面,提供一种计算设备,包括:一个或多个处理器、存储器以及一个或多个程序。一个或多个程序存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行本申请的资源调度方法的指令。
根据本申请一方面,提供一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行本申请的资源调度方法。
综上,根据本申请的技术方案可以通过资源占用记录对各计算任务组在第一周期内所需资源进行合理预测(即,确定第一数值)。在此基础上,本申请的技术方案能够采用机器学习方式综合考虑第一数值、第二数值和计算任务组的优先级,从而能够充分利用计算集群的计算资源并提高资源分配(调度)的合理性。计算集群通过本申请的资源调度方案可以按照周期动态调节计算资源,从而能够根据计算任务的变化即时调节计算资源,进而极大提高计算资源的使用合理性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A示出了根据本申请一些实施例的应用场景的示意图;
图1B示出了根据本申请一些实施例的应用场景的示意图;
图2示出了根据本申请一些实施例的资源调度方法200的流程图;
图3示出了根据本申请一些实施例的资源调度方法300的流程图;
图4示出了根据本申请一些实施例的预测第一数值的流程图;
图5示出了根据本申请一些实施例的分配计算资源的流程图;
图6示出了根据本申请一些实施例的资源调度方法600的流程图;
图7示出了根据本申请一些实施例的资源调度装置700的流程图;以及
图8示出了一个计算设备的组成结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
计算集群可以包括多个用于计算的节点。每个节点可以为一个硬件独立的服务器或者虚拟服务器。计算集群中计算资源(例如包括存储器和处理器)的集合可以称为资源池。在一些应用场景中,计算集群也可以用于存储数据。在这些场景中,计算集群也可以称为存储集群。在一些实施例中,计算集群可以为任务集合中任务分配一定的资源。这里,分配资源的阈值通常为固定值。计算集群资源调度的合理性有待提高。
图1A示出了根据本申请一些实施例的应用场景100a的示意图。
如图1A所示,计算集群102可以通过一个或多个网络106与用户设备104(例如,用户设备104a-c)通信。用户设备104可以向计算集群102提交计算任务。计算集群102可以调用资源池110中计算资源执行任务。这里,资源池110包括但不限于各计算节点的处理器和存储器。处理器的类型例如可以包括中央处理器(CPU)和图形处理器(GPU)等等。存储器可以包括内存储器和外存储器。
在一些实施例中,计算集群102的每个用户通过在相应的用户设备104(例如,用户设备104a-c)上执行的相应的任务提交客户端应用108(例如,应用108a-c),向计算集群102提交计算任务。在一些实施例中,任务提交客户端应用108可以向用户提供用户界面元素(例如,文本框、按钮、消息显示区域等)。
用户设备104可以包括但不限于掌上型计算机、可穿戴计算设备、个人数字助理(PDA)、平板计算机、笔记本电脑、台式计算机、移动电话、智能手机、增强型通用分组无线业务(EGPRS)移动电话、媒体播放器、导航设备、游戏控制台、电视机、或任意两个或更多的这些数据处理设备或其他数据处理设备的组合。
在一些实施例中,任务提交系统112也可以向计算集群102提交计算任务。这里,任务提交系统112包括一个或多个服务器,可以生成在计算集群102中执行的计算任务。
一个或多个网络106的示例包括局域网(LAN)和广域网(WAN)诸如互联网。可选地,本申请的实施例可以使用任意公知的网络协议来实现一个或多个网络106,包括各种有线或无线协议,诸如,以太网、通用串行总线(USB)、FIREWIRE、全球移动通讯系统(GSM)、增强数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、WiFi、IP语音(VoIP),Wi-MAX,或任意其他适合的通信协议。
图1B示出了根据本申请一些实施例的应用场景100b的示意图。如图1B所示,计算集群102可以包括多个计算节点114(例如计算节点114a-c)。每个计算节点114中计算资源可以包括一个或多个存储器和一个或多个处理器。计算集群102中各计算节点中计算资源(存储器和处理器等等)的集合可以称为资源池。
在一些实施例中,计算集群102还可以包括一个或多个管理节点116。管理节点116可以对计算集群102中计算节点的元信息进行管理。管理节点116可以对资源池进行资源调度管理。换言之,管理节点116可以对各计算节点进行任务分配。
图2示出了根据本申请一些实施例的资源调度方法200的流程图。资源调度方法200可以在计算集群102中执行。例如,资源调度方法200可以在计算集群102的计算节点中分布式执行。又例如,资源调度方法200可以在计算集群102的管理节点116中执行。
计算集群102可以将计算任务进行分组管理,即将计算任务划分为计算任务组。计算集群102可以为每个计算任务组分配用于计算的资源。这里,计算集群102可以采用各种规则对计算任务进行分组。例如,计算集群102可以根据业务逻辑的类型对计算任务进行分组。又例如,计算集群102可以根据用户标识对计算任务进行分组,但不限于此。计算集群102可以周期性对资源池中资源进行调整。换言之,每经过一个周期时长,计算集群102可以进行一次资源调度调整。例如,每经过一个周期时长,计算集群102可以执行一次方法200。
如图2所示,方法200可以包括步骤S201和S202。在步骤S201中,对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群102的资源占用记录,分别预测各计算任务组在第一周期内占用资源的第一数值。这里,第一周期是指一个周期时长的任意时间段。一个周期时长例如是5分钟、10分钟或其他时长,本申请对此不做限制。各计算任务组的资源占用记录是指第一周期之前的一段时间内对资源的使用情况。这里,一段时间例如可以包括多个周期时长。一段时间例如可以是一周或一个月等等时间长度。这样,步骤S201可以利用资源占用记录所代表的历史趋势,合理预测各计算任务组的第一数值。需要说明的是,取决于计算资源的种类数量,第一数值可以表示为一维向量或者多维向量。例如,第一数值为与处理器(或者存储器)有关的第一数值。又例如,第一数值包括两个维度值。其中,一个维度值是与处理器有关的数值,另一个纬度值是与存储器有关的数值。
在步骤S202中,计算集群102可以获取各计算任务组在第二周期内已占用资源的第二数值。其中,第二周期早于且相邻于第一周期。简言之,第二周期为第一周期的前一个周期。
在步骤S203中,确定各计算任务组的优先级参数。各计算任务组的优先级参数用于描述各计算任务组的重要程度。在一些实施例中,计算集群102例如可以根据业务逻辑类型、用户标识和任务时效性等因素中至少一个,确定各计算任务组的优先级参数。在一些实施例中,计算集群102可以根据用户对计算任务组的配置操作而确定各计算任务组的优先级参数。
在步骤S204中,计算集群102可以根据预测得到的各计算任务组在第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和优先级参数,将计算集群在第一周期内未分配的计算资源分配给各计算任务组。这里,计算集群102在步骤S204中可以采用机器学习方式来利用第一数值、第二数值和优先级参数对第一周期内的未分配的计算资源进行分配。这里,未分配的计算资源是指可用资源池。可用资源池为计算集群102中所有资源减去已用资源后的可用资源的集合。机器学习方式例如为梯度下降算法,但不限于此。在一些实施例中,计算集群102可以确定第一数值相对于第二数值的变化趋势。在此基础上,步骤S204可以综合考虑变化趋势和优先级参数,从而能够合理分配计算集群102在第一周期内未分配的计算资源。
综上,方法200可以通过资源占用记录对各计算任务组在第一周期内所需资源进行合理预测(即,确定第一数值)。在此基础上,方法200能够采用机器学习方式综合考虑第一数值、第二数值和计算任务组的优先级,从而能够充分利用计算集群的计算资源并提高资源分配(调度)的合理性。计算集群102通过周期性执行方法200可以按照周期动态调节计算资源,从而能够根据计算任务的变化即时调节计算资源,进而极大提高计算资源的使用合理性。
图3示出了根据本申请一些实施例的资源调度方法300的流程图。资源调度方法300例如可以在计算集群102中执行。
在步骤S301中,对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群102的资源占用记录,分别预测各计算任务组在第一周期内占用资源的第一数值。在一些实施例中,步骤S301与步骤S201的实施方式一致,这里不再赘述。
在一些实施例中,各计算任务组包括一个或多个周期任务和\或一个或多个非周期任务。各计算任务组中每个周期任务表示一个周期性执行的计算任务。这里,周期任务也可以称为计算集群102执行的常规任务。周期任务例如可以包括在每天一个确定时间点(例如每天上午9点钟)执行的任务和每小时执行一次的任务等等。各计算任务组中每个非周期任务表示一个非周期性执行的计算任务。非周期任务也可以称为临时性任务。在第一周期之前,计算集群102可以确定要在第一周期内执行的临时性任务。临时性任务例如是由用户设备104或者任务提交系统112临时提交的计算任务。对于计算集群102而言,临时性任务具有随机性。
在一些实施例中,多个计算任务组的集合例如可以表示为G。
G可以表示为:
G={gi}其中,gi表示集合G中第i个计算任务组。
计算任务组gi的总计算任务可以表示为
可以表示为:
其中,表示计算任务组gi中第j个周期任务,表示计算任务组gi中第j个非周期任务。
在一些实施例中,步骤S301可以实施为图4所示的方法400。如图4所示,在步骤S401中,获取各计算任务组在第一周期之前的多个周期(例如周期数量为200个,但不限于此、)内的资源占用记录。这样,步骤S401可以确定前述多个周期中每个周期内各周期任务所占用资源的数量。
在步骤S402中,对于多个计算任务组中任一个周期任务,计算集群102可以根据资源占用记录确定该周期任务在多个周期内占用资源的平均值。这里,一个周期任务对应的平均值可以作为该周期任务在第一周期内要占用资源的预测值。
在步骤S403中,对于多个计算任务组中任一个计算任务组,基于该计算任务组中每个周期任务对应的平均值和每个非周期任务被分配的默认资源值,确定该计算任务组在第一周期内的第一数值。这里,一个计算任务组的第一数值是该计算任务组中所有周期任务对应的预测值和所有非周期任务的默认资源值之和。
在一些实施例中,步骤S403可以根据下述方式计算第一数值。
其中,表示计算任务组gi中第j个周期任务在第一周期内的预测值(即,上述平均值)。m表示计算任务组gi中非周期任务的数量,R0表示默认资源值。表示计算任务组gi的第一数值。
综上,方法400可以按照周期任务和非周期任务对进行划分。在此基础上,方法400可以根据每个计算任务组的任务组成,准确对各个计算任务组的计算资源进行预测。
在步骤S302中,计算集群102可以获取各计算任务组在第二周期内已占用资源的第二数值。
在一些实施例中,步骤S302可以通过步骤S3021至S3023实现。
在步骤S3021中,对于上述多个计算任务组中任一个计算任务组,获取该计算任务组中每个周期任务在第二周期内占用资源的第一资源占用值;
在步骤S3022中,获取该计算任务组中每个非周期任务在第二周期内的第二资源占用值。
在步骤S3023中,确定该计算任务组中所有周期任务的第一资源占用值和所有非周期任务的第二资源占用值之和,将和作为该计算任务组的第二数值。
在一些实施例中,步骤S3023可以根据下述方式计算第二数值。
其中,Rj表示计算任务组gi中第j个计算任务在第二周期T2内占用的资源占用值,表示计算任务组gi的第二数值。
在步骤S303中,确定各计算任务组的优先级参数。各计算任务组的优先级参数用于描述各计算任务组的重要程度。这里,步骤S303的实施方式与步骤S203一致,这里不再赘述。
在步骤S304中,根据预测得到的各计算任务组在第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和优先级参数,将集群在第一周期内未分配的计算资源分配给各计算任务组。
在一些实施例中,计算集群102可以通过执行步骤S3041和S3042而实施步骤S304。
在步骤S3041中,对于所述多个计算任务组中任一个计算任务组,确定该计算任务组的第一数值相对于该计算任务组的第二数值的变化趋势。在一些实施例中,对于一个计算任务组,步骤S3041可以计算该计算任务组的第一数值与该计算任务组的第二数值之比值。这里,比值用于描述该计算任务组的变化趋势。在一些实施例中,第一数值和第二数值的比值可以表示为:
在步骤S3042中,根据各计算任务组的变化趋势和优先级参数,将计算集群在第一周期内未分配的计算资源分配给所述各计算任务组。
在一些实施例中,计算集群可以将步骤S3042实现为方法500。
如图5所示,在步骤S501中,根据所述各计算任务组的所述变化趋势和所述优先级参数确定所述各计算任务组的分配权重。在一些实施例中,步骤S501可以包括步骤S5011和S5012。
在步骤S5011中,基于梯度下降方式,对于多个计算任务组中任一个计算任务组,根据该计算任务组的优先级参数和变化趋势确定该计算任务组在梯度下降方式中的迭代步长。
在一些实施例中,迭代步长可以表示为:其中βi为迭代参数。βi=αi,αi表示计算任务组gi的优先级参数。
在一些实施例中,当第一数值和第二数值的比值小于1时,将优先级参数的倒数与比值之积作为该计算任务组的迭代步长。当第一数值和第二数值的比值达到1时,将优先级参数与比值之积作为该计算任务组的迭代步长。在一个实施例中,步骤S5011可以根据下述方式计算βi:
这里,S5011可以通过判断第一数值相对于第二数值的变化趋势,可以在优先级越高(αi值越大表示优先级越高)的计算任务组在需要增加获取计算资源(即,第一周期比第二周期占用资源增加的情况)时,能够越快的获取计算资源。另外,在优先级越高的计算任务组在减少占用资源(即,第一周期比第二周期占用资源减少的情况)时,能够越缓慢减少计算资源,以避免计算集群102的系统抖动(即,避免处理计算任务的计算资源快速减少时造成的系统抖动)。
在步骤S5012中,基于各计算任务组的所述迭代步长,利用所述梯度下降方式迭代更新所述各计算任务组的分配权重。
在一些实施例中,方法500可以基于下述公式进行计算资源分配操作。
其中:
ωi≥0----(式3)
Rremin表示计算集群102在第一周期T1内未分配的计算资源,ωi表示计算任务组gi的分配权重。其中,式2和3为式1的约束条件。
权重ωi的更新计算策略为:
其中,表示分配权重ωi的第N次迭代值,表示分配权重ωi的第N+1次迭代值,N为正整数。
在步骤S502中,对于所述多个计算任务组中任一个计算任务组,将该计算任务组的所述分配权重与该计算任务组的所述第一数值之积作为该计算任务组的资源分配值,以使得所述集群按照该资源分配值为该计算任务组分配在第一周期内占用的计算资源。
综上,方法300可以通过资源占用记录对各计算任务组在第一周期内所需资源进行合理预测。在此基础上,方法300能够采用机器学习方式综合考虑第一数值、第二数值和计算任务组的优先级,从而能够充分利用计算集群的计算资源并提高资源分配(调度)的合理性。计算集群102通过周期性执行方法300可以按照周期动态调节计算资源,从而能够根据计算任务的变化即时调节计算资源,进而极大提高计算资源的分配合理性。
图6示出了根据本申请一些实施例的资源调度方法600的示意图。资源调度方法600例如可以在计算集群102中执行。
在步骤S601中,确定多个计算任务组中各计算任务组的最小资源分配值。
在一些实施例中,多个计算任务组的集合例如可以表示为G。G可以表示为:
G={gi}其中,gi表示集合G中第i个计算任务组。
步骤S601可以通过式6和式7确定每个计算任务组的最小资源数值:
其中,ki和li为常量,计算集群102可以配置和修改ki和li。,为最小的CPU分配单元,比如为核数。例如为最小的内存分配单元,比如为128M。计算任务组gi的最小资源值为
方法600还包括步骤S602-S605。这里,步骤S602至S604实施方式分别与步骤S301至S303一致,这里不再赘述。
在步骤S605中,根据预测得到的各计算任务组在第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和优先级参数,将集群在第一周期内未分配的计算资源分配给各计算任务组。
在一些实施例中,步骤S605可以通过上述步骤S3041和S3042实现,这里不再赘述。在一些实施例中,步骤S605可以基于各计算任务组的最小资源分配值,使得各计算任务组所分配的计算资源不小于各计算任务组的最小资源分配值。在一些实施例中,步骤S4042通过方法500分配资源时,可以使得式1满足:
这样,步骤S605可以保证所有计算任务组均可以被执行。
图7示出了根据本申请一些实施例的资源调度装置700的示意图。资源调度装置700例如可以驻留在计算集群102中。
如图7所示,资源调度装置700包括预测单元701、获取单元702、优先级确定单元703和资源分配单元704。
对于在第一周期内执行的多个计算任务组,预测单元701可以根据各计算任务组对计算集群的资源占用记录,分别预测各计算任务组在第一周期内占用资源的第一数值。
在一些实施例中,各计算任务组包括一个或多个周期任务和\或一个或多个非周期任务。各计算任务组中每个周期任务表示一个周期性执行的计算任务。各计算任务组中每个非周期任务表示一个非周期性执行的计算任务。
在一些实施例中,预测单元701可以获取各计算任务组在第一周期之前的多个周期内的资源占用记录。对于多个计算任务组中任一个周期任务,预测单元701可以根据资源占用记录确定该周期任务在多个周期内占用资源的平均值。对于多个计算任务组中任一个计算任务组,预测单元701可以基于该计算任务组中每个周期任务的平均值和每个非周期任务被分配的默认资源值,确定该计算任务组在第一周期内的第一数值。
获取单元702可以获取各计算任务组在第二周期内已占用资源的第二数值,其中,第二周期早于且相邻于第一周期。在一些实施例中,对于多个计算任务组中任一个计算任务组,获取单元702可以获取该计算任务组中每个周期任务在第二周期内的第一资源占用值。另外,获取单元702可以获取计算任务组中每个非周期任务在第二周期内的第二资源占用值。获取单元702可以确定计算任务组中所有周期任务的第一资源占用值和所有非周期任务的第二资源占用值之和,将和作为计算任务组的第二数值。
优先级确定单元703可以确定各计算任务组的优先级参数。各计算任务组的优先级参数用于描述各计算任务组的重要程度。
资源分配单元704可以根据预测得到的各计算任务组在第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和优先级参数,将集群在第一周期内未分配的计算资源分配给各计算任务组。
在一些实施例中,对于多个计算任务组中任一个计算任务组,资源分配单元704可以确定该计算任务组的第一数值相对于该计算任务组的第二数值的变化趋势。在此基础上,资源分配单元704可以根据各计算任务组的变化趋势和优先级参数,将计算集群在第一周期内未分配的计算资源分配给各计算任务组。
在一些实施例中,资源分配单元704可以根据各计算任务组的变化趋势和优先级参数确定各计算任务组的分配权重。对于多个计算任务组中任一个计算任务组,资源分配单元704可以将该计算任务组的分配权重与该计算任务组的第一数值之积作为该计算任务组的资源分配值,以使得计算集群按照该资源分配值为该计算任务组分配在第一周期内占用的计算资源。
在一些实施例中,对于多个计算任务组中任一个计算任务组,资源分配单元704可以基于梯度下降方式,根据该计算任务组的优先级参数和变化趋势确定该计算任务组在梯度下降方式中的迭代步长。基于各计算任务组的迭代步长,资源分配单元704可以利用梯度下降方式迭代更新各计算任务组的分配权重。
在一些实施例中,资源分配单元704可以计算一个计算任务组的第一数值与该计算任务组的第二数值之比值。该比值用于描述该计算任务组对应的变化趋势。当比值小于1时,资源分配单元704可以将优先级参数的倒数与比值之积作为计算任务组的迭代步长。当比值达到1时,资源分配单元704将优先级参数与比值之积作为计算任务组的迭代步长。
在一些实施例中,资源分配单元704可以确定多个计算任务组中各计算任务组的最小资源分配值。基于各计算任务组的最小资源分配值,资源分配单元704可以使得各计算任务组所分配的计算资源不小于各计算任务组的最小资源分配值。装置700更具体的实施方式与方法300一致,这里不再赘述。
综上,装置700可以通过资源占用记录对各计算任务组在第一周期内所需资源进行合理预测。在此基础上,装置700能够采用机器学习方式综合考虑第一数值、第二数值和计算任务组的优先级,从而能够充分利用计算集群的计算资源并提高资源分配(调度)的合理性。计算集群102通过装置700可以按照周期动态调节计算资源,从而能够根据计算任务的变化即时调节计算资源,进而极大提高计算资源的分配合理性。
图8示出了一个计算设备的组成结构图。该计算设备例如可以是计算集群102中一个节点。如图8所示,该计算设备包括一个或者多个处理器(CPU)802、通信模块804、存储器806、用户接口810,以及用于互联这些组件的通信总线808。
处理器802可通过通信模块804接收和发送数据以实现网络通信和/或本地通信。
用户接口810包括一个或多个输出设备812,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口810也包括一个或多个输入设备814。用户接口810例如可以接收遥控器的指令,但不限于此。
存储器806可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器806存储处理器802可执行的指令集,包括:
操作系统816,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用818,包括用于实现上述资源调度方法的各种程序,这种程序能够实现上述各实施例中的资源调度流程,比如可以包括图7所示资源调度装置700。
另外,本申请的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。
此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本申请还公开了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述资源调度方法的任意一种实施例。
另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
以上所述仅为本申请的可选实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (15)
1.一种资源调度方法,其特征在于,包括:
对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群的资源占用记录,分别预测所述各计算任务组在所述第一周期内占用资源的第一数值;
获取所述各计算任务组在第二周期内已占用资源的第二数值,其中,所述第二周期早于且相邻于所述第一周期;
确定所述各计算任务组的优先级参数,所述各计算任务组的优先级参数用于描述各计算任务组的重要程度;以及
根据预测得到的所述各计算任务组在所述第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和所述优先级参数,将所述集群在所述第一周期内未分配的计算资源分配给所述各计算任务组。
2.如权利要求1所述的方法,其中,所述各计算任务组包括一个或多个周期任务和\或一个或多个非周期任务,所述各计算任务组中每个周期任务表示一个周期性执行的计算任务,所述各计算任务组中每个非周期任务表示一个非周期性执行的计算任务。
3.如权利要求2所述的方法,所述根据各计算任务组对计算集群的资源占用记录,分别预测所述各计算任务组在所述第一周期内占用资源的第一数值,包括:
获取所述各计算任务组在所述第一周期之前的多个周期内的所述资源占用记录;
对于所述多个计算任务组中任一个周期任务,根据所述资源占用记录确定该周期任务在所述多个周期内占用资源的平均值;
对于所述多个计算任务组中任一个计算任务组,基于该计算任务组中每个周期任务的所述平均值和每个非周期任务被分配的默认资源值,确定该计算任务组在所述第一周期内的所述第一数值。
4.如权利要求2所述的方法,其中,所述获取所述各计算任务组在第二周期内已占用资源的第二数值,包括:
对于所述多个计算任务组中任一个计算任务组,获取该计算任务组中每个周期任务在所述第二周期内的第一资源占用值;
获取该计算任务组中每个非周期任务在所述第二周期内的第二资源占用值;
确定该计算任务组中所有周期任务的所述第一资源占用值和所有非周期任务的所述第二资源占用值之和,将所述和作为该计算任务组的所述第二数值。
5.如权利要求1所述的方法,其中,所述根据预测得到的所述各计算任务组在所述第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和所述优先级参数,将所述集群在所述第一周期内未分配的计算资源分配给所述各计算任务组,包括:
对于所述多个计算任务组中任一个计算任务组,确定该计算任务组的所述第一数值相对于该计算任务组的所述第二数值的变化趋势;
根据所述各计算任务组的所述变化趋势和所述优先级参数,将所述计算集群在所述第一周期内未分配的计算资源分配给所述各计算任务组。
6.如权利要求5所述的方法,其中,所述根据所述各计算任务组的所述变化趋势和所述优先级参数,将所述计算集群在所述第一周期内未分配的计算资源分配给所述各计算任务组,包括:
根据所述各计算任务组的所述变化趋势和所述优先级参数确定所述各计算任务组的分配权重;
对于所述多个计算任务组中任一个计算任务组,将该计算任务组的所述分配权重与该计算任务组的所述第一数值之积作为该计算任务组的资源分配值,以使得所述计算集群按照该资源分配值为该计算任务组分配在所述第一周期内占用的计算资源。
7.如权利要求6所述的方法,其中,所述确定所述各计算任务组的分配权重,包括:
基于梯度下降方式,对于所述多个计算任务组中任一个计算任务组,根据该计算任务组的所述优先级参数和所述变化趋势确定该计算任务组在所述梯度下降方式中的迭代步长;
基于所述各计算任务组的所述迭代步长,利用所述梯度下降方式迭代更新所述各计算任务组的分配权重。
8.如权利要求7所述的方法,其中,所述对于所述多个计算任务组中任一个计算任务组,确定该计算任务组的所述第一数值相对于该计算任务组的所述第二数值的变化趋势,包括:计算该计算任务组的所述第一数值与该计算任务组的所述第二数值之比值,所述比值用于描述该计算任务组的所述变化趋势;
所述根据该计算任务组的所述优先级参数和所述变化趋势确定该计算任务组在所述梯度下降方式中的迭代步长,包括:
当所述比值小于1时,将所述优先级参数的倒数与所述比值之积作为该计算任务组的所述迭代步长;
当所述比值达到1时,将所述优先级参数与所述比值之积作为该计算任务组的所述迭代步长。
9.如权利要求1所述的方法,进一步包括:确定所述多个计算任务组中各计算任务组的最小资源分配值;
所述将所述集群在所述第一周期内未分配的计算资源分配给所述各计算任务组,包括:
基于所述各计算任务组的最小资源分配值,使得所述各计算任务组所分配的计算资源不小于所述各计算任务组的最小资源分配值。
10.一种资源调度装置,其特征在于,包括:
预测单元,用于对于在第一周期内执行的多个计算任务组,根据各计算任务组对计算集群的资源占用记录,分别预测所述各计算任务组在所述第一周期内占用资源的第一数值;
获取单元,用于获取所述各计算任务组在第二周期内已占用资源的第二数值,其中,所述第二周期早于且相邻于所述第一周期;
优先级确定单元,用于确定所述各计算任务组的优先级参数,所述各计算任务组的优先级参数用于描述各计算任务组的重要程度;以及
资源分配单元,用于根据预测得到的所述各计算任务组在所述第一周期内占用资源的第一数值、在第二周期内已占用资源的第二数值和所述优先级参数,将所述集群在所述第一周期内未分配的计算资源分配给所述各计算任务组。
11.如权利要求10所述的装置,其中,所述各计算任务组包括一个或多个周期任务和\或一个或多个非周期任务,所述各计算任务组中每个周期任务表示一个周期性执行的计算任务,所述各计算任务组中每个非周期任务表示一个非周期性执行的计算任务。
12.如权利要求11所述的装置,所述预测单元根据下述方式分别预测所述各计算任务组在所述第一周期内占用资源的第一数值:
获取所述各计算任务组在所述第一周期之前的多个周期内的所述资源占用记录;
对于所述多个计算任务组中任一个周期任务,根据所述资源占用记录确定该周期任务在所述多个周期内占用资源的平均值;
对于所述多个计算任务组中任一个计算任务组,基于该计算任务组中每个周期任务的所述平均值和每个非周期任务被分配的默认资源值,确定该计算任务组在所述第一周期内的所述第一数值。
13.如权利要求11所述的装置,其中,所述获取单元根据下述方式获取所述各计算任务组在第二周期内已占用资源的第二数值:
对于所述多个计算任务组中任一个计算任务组,获取该计算任务组中每个周期任务在所述第二周期内的第一资源占用值;
获取该计算任务组中每个非周期任务在所述第二周期内的第二资源占用值;
确定该计算任务组中所有周期任务的所述第一资源占用值和所有非周期任务的所述第二资源占用值之和,将所述和作为该计算任务组的所述第二数值。
14.一种计算设备,其特征在于包括:
处理器;
存储器;以及
一个或多个程序,存储在该存储器中并被配置为由所述处理器执行,所述一个或多个程序包括用于执行权利要求1-9中任一项所述的方法的指令。
15.一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810825420.1A CN109189563B (zh) | 2018-07-25 | 2018-07-25 | 资源调度方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810825420.1A CN109189563B (zh) | 2018-07-25 | 2018-07-25 | 资源调度方法、装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189563A true CN109189563A (zh) | 2019-01-11 |
CN109189563B CN109189563B (zh) | 2020-01-24 |
Family
ID=64936931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810825420.1A Active CN109189563B (zh) | 2018-07-25 | 2018-07-25 | 资源调度方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189563B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389842A (zh) * | 2019-07-26 | 2019-10-29 | 中国工商银行股份有限公司 | 一种动态资源分配方法、装置、存储介质及设备 |
CN110599148A (zh) * | 2019-09-16 | 2019-12-20 | 广州虎牙科技有限公司 | 集群数据处理方法、装置、计算机集群及可读存储介质 |
CN111176814A (zh) * | 2019-12-29 | 2020-05-19 | 山东英信计算机技术有限公司 | 一种任务执行方法及相关装置 |
CN111461290A (zh) * | 2020-03-11 | 2020-07-28 | 北京百度网讯科技有限公司 | 模型参数更新方法及装置 |
CN112188632A (zh) * | 2020-10-09 | 2021-01-05 | 上海海事大学 | 一种基于二阶梯度估计的海洋雾节点在线资源管理方法 |
CN113765949A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 资源分配的方法以及装置 |
CN114077493A (zh) * | 2020-08-21 | 2022-02-22 | 荣耀终端有限公司 | 一种资源分配方法及相关设备 |
CN114666284A (zh) * | 2022-05-23 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 一种流量控制方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761147A (zh) * | 2014-01-15 | 2014-04-30 | 清华大学 | 一种云平台中计算实例的管理方法及系统 |
CN104239123A (zh) * | 2014-09-05 | 2014-12-24 | 北方工业大学 | 面向校园云平台的虚拟机管理调度方法和系统 |
CN107291538A (zh) * | 2017-06-14 | 2017-10-24 | 中国人民解放军信息工程大学 | 面向任务的拟态云构建方法及基于拟态云的任务调度方法、装置、系统 |
CN107404523A (zh) * | 2017-07-21 | 2017-11-28 | 中国石油大学(华东) | 云平台自适应资源调度系统和方法 |
CN108304252A (zh) * | 2017-05-22 | 2018-07-20 | 中兴通讯股份有限公司 | 一种任务调度方法及装置 |
-
2018
- 2018-07-25 CN CN201810825420.1A patent/CN109189563B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761147A (zh) * | 2014-01-15 | 2014-04-30 | 清华大学 | 一种云平台中计算实例的管理方法及系统 |
CN104239123A (zh) * | 2014-09-05 | 2014-12-24 | 北方工业大学 | 面向校园云平台的虚拟机管理调度方法和系统 |
CN108304252A (zh) * | 2017-05-22 | 2018-07-20 | 中兴通讯股份有限公司 | 一种任务调度方法及装置 |
CN107291538A (zh) * | 2017-06-14 | 2017-10-24 | 中国人民解放军信息工程大学 | 面向任务的拟态云构建方法及基于拟态云的任务调度方法、装置、系统 |
CN107404523A (zh) * | 2017-07-21 | 2017-11-28 | 中国石油大学(华东) | 云平台自适应资源调度系统和方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389842A (zh) * | 2019-07-26 | 2019-10-29 | 中国工商银行股份有限公司 | 一种动态资源分配方法、装置、存储介质及设备 |
CN110389842B (zh) * | 2019-07-26 | 2022-09-20 | 中国工商银行股份有限公司 | 一种动态资源分配方法、装置、存储介质及设备 |
CN110599148A (zh) * | 2019-09-16 | 2019-12-20 | 广州虎牙科技有限公司 | 集群数据处理方法、装置、计算机集群及可读存储介质 |
CN110599148B (zh) * | 2019-09-16 | 2022-05-31 | 广州虎牙科技有限公司 | 集群数据处理方法、装置、计算机集群及可读存储介质 |
CN111176814A (zh) * | 2019-12-29 | 2020-05-19 | 山东英信计算机技术有限公司 | 一种任务执行方法及相关装置 |
CN111176814B (zh) * | 2019-12-29 | 2022-06-17 | 山东英信计算机技术有限公司 | 一种任务执行方法及相关装置 |
CN111461290A (zh) * | 2020-03-11 | 2020-07-28 | 北京百度网讯科技有限公司 | 模型参数更新方法及装置 |
CN111461290B (zh) * | 2020-03-11 | 2023-09-22 | 北京百度网讯科技有限公司 | 模型参数更新方法及装置 |
CN113765949A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 资源分配的方法以及装置 |
CN114077493A (zh) * | 2020-08-21 | 2022-02-22 | 荣耀终端有限公司 | 一种资源分配方法及相关设备 |
CN112188632A (zh) * | 2020-10-09 | 2021-01-05 | 上海海事大学 | 一种基于二阶梯度估计的海洋雾节点在线资源管理方法 |
CN114666284A (zh) * | 2022-05-23 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 一种流量控制方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109189563B (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189563B (zh) | 资源调度方法、装置、计算设备及存储介质 | |
US10942776B2 (en) | Dynamic resource allocation for application containers | |
CN108009016B (zh) | 一种资源负载均衡控制方法及集群调度器 | |
US10789544B2 (en) | Batching inputs to a machine learning model | |
Wang et al. | Maptask scheduling in mapreduce with data locality: Throughput and heavy-traffic optimality | |
US20190394132A1 (en) | System and Method for Network Slicing for Service-Oriented Networks | |
CN108845874B (zh) | 资源的动态分配方法及服务器 | |
CN104111800A (zh) | 一种虚拟磁盘的io口调度方法及其调度装置 | |
CN110149282B (zh) | 流量调度方法和装置 | |
CN111290841B (zh) | 任务调度方法、装置、计算设备及存储介质 | |
Kim et al. | Prediction based sub-task offloading in mobile edge computing | |
CN111324471B (zh) | 服务调整方法、装置、设备及存储介质 | |
CN112130997B (zh) | 一种资源分配方法及装置 | |
CN111967917A (zh) | 预测用户流失的方法以及设备 | |
Li et al. | PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters | |
CN106502790A (zh) | 一种基于数据分布的任务分配优化方法 | |
CN114020469A (zh) | 基于边缘节点的多任务学习方法、装置、介质与设备 | |
CN116074323B (zh) | 边缘计算节点的选择方法、装置、计算机设备及介质 | |
CN109408722B (zh) | 社区划分方法、装置、计算设备及存储介质 | |
CN116737370A (zh) | 一种多资源调度方法、系统、存储介质及终端 | |
CN104932944B (zh) | 基于带权二部图的云计算资源服务组合方法 | |
US20230266997A1 (en) | Distributed scheduling in container orchestration engines | |
CN115827178A (zh) | 边缘计算任务分配方法、装置、计算机设备及相关介质 | |
CN110928683B (zh) | 基于两类密集型虚拟机的边缘计算资源分配方法 | |
Peláez et al. | Online scheduling of deadline‐constrained bag‐of‐task workloads on hybrid clouds |
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 |