CN117851008A - 资源调度方法、资源调度装置、存储介质和电子设备 - Google Patents
资源调度方法、资源调度装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117851008A CN117851008A CN202311873336.4A CN202311873336A CN117851008A CN 117851008 A CN117851008 A CN 117851008A CN 202311873336 A CN202311873336 A CN 202311873336A CN 117851008 A CN117851008 A CN 117851008A
- Authority
- CN
- China
- Prior art keywords
- memory
- target task
- historical
- record
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 230000015654 memory Effects 0.000 claims abstract description 880
- 238000004364 calculation method Methods 0.000 claims description 77
- 238000012545 processing Methods 0.000 claims description 20
- 238000002360 preparation method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 17
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 239000000725 suspension Substances 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种资源调度方法、资源调度装置、存储介质和电子设备,该方法包括:获取目标任务的标识号;根据目标任务的标识号,确定历史任务记录中是否存在目标任务的历史内存记录;在历史任务记录中存在目标任务的历史内存记录的情况下,根据目标任务的历史内存记录,确定用于执行目标任务的初始内存值,目标任务的历史内存记录包括历史时间段内成功执行目标任务的内存值;在历史任务记录中不存在目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行目标任务的初始内存值。该方法通过历史任务记录进行分析,准确确定定期执行的任务内存消耗,不断优化分配给任务的内存值,避免因内存不足导致作业失败的问题发生。
Description
技术领域
本申请涉及资源调度领域,具体而言,涉及一种资源调度方法、资源调度装置、计算机可读存储介质和电子设备。
背景技术
目前的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,并不能判断分配的资源是否合适。即现有的调度系统存在以下缺点:
(1)任务始终分配一个固定初始资源,对不同任务的区分度不够,由于具体执行需要资源会在执行后调整,实际使用内存会同初始内存差异较大。
(2)现阶段资源优化过程一般由人工完成,并且需要耗费的时间较长,并且需要配合其他优化过程,具有很大的不确定性,而且并不能很容易找到任务的最优运行资源,容易造成资源利用率低的情况。
(3)挂起等待之后,往往需要等待一段时间才能分配到内存,增加了排队时长。
(4)报错后定位问题原因,报错分析中可能会遇到超出内存限制或者由于其他任务导致内存紧张共同存在的情况。
(5)没有合适的重调机制,一种是不断的循环重调,并不分析报错原因,导致由于资源问题的报错始终无法解决;一种是需要人工手动处理报错,还需要区分是否能够通过重调解决,或者手动分配资源执行。
(6)由于调度只使用并发来控制集群运行作业的数量,若出现多个资源占用量大的作业会导致集群卡死,需要动态调整并发,实时识别集群状态,避免集群卡死。
发明内容
本申请的主要目的在于提供一种资源调度方法、资源调度装置、计算机可读存储介质和电子设备,以至少解决现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种资源调度方法,包括:获取目标任务的标识号,所述标识号用于唯一标识所述目标任务;根据所述目标任务的标识号,确定历史任务记录中是否存在所述目标任务的历史内存记录;在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,所述目标任务的历史内存记录包括历史时间段内成功执行所述目标任务的内存值;在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值。
可选地,在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,包括:在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定所述目标任务的历史内存周期,所述历史内存周期为根据在历史时间段内成功执行所述目标任务所消耗的内存的规律得到的;构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为所述目标任务的初始内存值,T为所述目标任务的开始执行时间,y(T-n)为一个所述历史内存周期内执行所述目标任务所需的内存值,n为所述历史内存周期;根据所述第一内存计算式,确定用于执行所述目标任务的所述初始内存值。
可选地,所述目标任务的历史内存记录有多个,在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,包括:在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据各所述目标任务的历史内存记录对应的历史执行时间,将多个所述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个所述历史内存记录集对应一个历史执行时段,一个所述历史内存记录集中的所有的所述历史内存记录的历史执行时间均位于该所述历史内存记录集对应的所述历史执行时段内;根据各所述历史内存记录集对应的所述历史执行时段,确定各所述历史内存记录集对应的计算权重,其中,所述历史执行时段与当前时刻的时间差越小,所述历史执行时段对应的所述历史内存记录集的计算权重越大;根据所有的所述目标任务的历史内存记录和各所述历史内存记录集对应的计算权重,确定用于执行所述目标任务的初始内存值。
可选地,所述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的所述目标任务的历史内存记录和各所述历史内存记录集对应的计算权重,确定用于执行所述目标任务的初始内存值,包括:构建第二内存计算式:y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为所述初始内存值,T为所述目标任务的开始执行时间,A为所述第一记录集对应的计算权重,B为所述第二记录集对应的计算权重,y(T-1)至(T-7)分别为所述第一记录集中的各所述历史内存记录,y(T-8)+…+y(T-15)分别为所述第二记录集中的各所述历史内存记录;根据所述第二内存计算式,确定用于执行所述目标任务的初始内存值。
可选地,在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值,包括:在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,将所述集群总资源和理想并发数的比值,确定为用于执行所述目标任务的初始内存值;和/或,在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值之后,所述方法还包括:在所述初始内存值不支持所述目标任务完全执行的情况下,将所述初始内存值的预设倍确定为所述目标任务的再分配内存值,并采用所述再分配内存值执行所述目标任务。
可选地,在所述初始内存值不支持所述目标任务完全执行的情况下,将所述初始内存值的预设倍确定为所述目标任务的再分配内存值,并采用所述再分配内存值执行所述目标任务,包括:在空闲内存值小于所述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对所述作业任务占用的内存求和,得到预备内存值;在所述预备内存值大于或者等于所述再分配内存值的情况下,保留分配给所述目标任务的内存,并将所述目标任务的优先级调高,以使得在所述作业任务执行完成后立即执行所述目标任务;在所述预备内存值小于所述再分配内存值的情况下,将分配给所述目标任务的内存释放,并将所述目标任务放置回任务排队序列中,直到所述空闲内存值大于或者等于所述再分配内存值的情况下,再执行所述目标任务。
可选地,所述方法还包括:在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;在当前时刻下的所述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到所述空闲内存值大于所述预设内存值,再将所述未执行任务放置回所述任务排队序列中。
根据本申请的另一方面,提供了一种资源调度装置,包括:获取单元,用于获取目标任务的标识号,所述标识号用于唯一标识所述目标任务;第一确定单元,用于根据所述目标任务的标识号,确定历史任务记录中是否存在所述目标任务的历史内存记录;第二确定单元,用于在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,所述目标任务的历史内存记录包括历史时间段内成功执行所述目标任务的内存值;第三确定单元,用于在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的资源调度方法。
根据本申请的另一方面,提供了一种电子设备,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的资源调度方法。
应用本申请的技术方案,上述资源调度方法,首先获取目标任务的标识号,标识号用于唯一标识目标任务;其次根据目标任务的标识号,确定历史任务记录中是否存在目标任务的历史内存记录;然后在历史任务记录中存在目标任务的历史内存记录的情况下,根据目标任务的历史内存记录,确定用于执行目标任务的初始内存值,目标任务的历史内存记录包括历史时间段内成功执行目标任务的内存值;最后在历史任务记录中不存在目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行目标任务的初始内存值。该方法通过历史任务记录进行分析,使对定期执行的任务内存及其时间消耗有更为明确的判断,不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生,解决了现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例中提供的一种执行资源调度方法的移动终端的硬件结构框图;
图2示出了根据本申请的实施例提供的一种资源调度方法的流程示意图;
图3示出了根据本申请的实施例提供的另一种资源调度方法的流程示意图;
图4示出了根据本申请的实施例提供的一种资源调度装置的结构框图。
其中,上述附图包括以下附图标记:
102、处理器;104、存储器;106、传输设备;108、输入输出设备。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
调度:定时执行任务的程序;
挂起:暂时释放内存,等待给出充足资源再次执行的状态。
正如背景技术中所介绍的,现有技术中的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,并不能判断分配的资源是否合适,为解决现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题,本申请的实施例提供了一种资源调度方法、资源调度装置、计算机可读存储介质和电子设备。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种资源调度方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中资源调度方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的资源调度方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的资源调度方法的流程图。如图2所示,该方法包括以下步骤:
步骤S201,获取目标任务的标识号,上述标识号用于唯一标识上述目标任务;
具体的,目标任务的标识号可以用于在历史记录中查找是否存在该目标任务的历史记录。例如,在实际执行过程中,需要提前分配一定的处理核数和内存,在分配的过程中可以调节一定的向上浮动值。不同的数量的核数和内存分配会影响到作业的执行效率。对于需要定期执行的任务,执行前需要估算该任务大致的内存消耗。
通过对历史记录的分析,得到该任务的历史资源分配及运行时间,以此来分析接下来运行的任务的资源消耗,并通过之前的记录不断对该资源消耗进行优化。
当前调度在任务开始阶段自动分配一个固定大小的资源给当前任务,并伴有一个比较宽松的向上浮动值。当分配资源超过所需资源,则回收超过的内存;当内存资源不足时则追加分配一份资源,直到符合资源要求;当无资源可以继续分配,而任务依然申请资源,则任务被暂时挂起,等待分配资源后继续执行;当任务超过资源限制要求或挂起时间超长,则报错,回滚并释放资源。
步骤S202,根据上述目标任务的标识号,确定历史任务记录中是否存在上述目标任务的历史内存记录;
具体的,历史任务记录中还包括作业标识号(任务的标识号)、开始执行时间、当前资源状态、实际消耗资源、运行时间等内容,以保证之后操作的继续进行。
步骤S203,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,上述目标任务的历史内存记录包括历史时间段内成功执行上述目标任务的内存值;
具体的,当定期任务存在历史,则依赖历史消耗对此次消耗进行判断。首先确认该定期任务是否对日期有明显规律,画出消耗内存关于执行日期的折线统计图。若没有明显规律,对历史记录进行加权计算,起始时通过近期的相同作业的执行历史记录推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
其中,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括如下步骤:
步骤S2031,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定上述目标任务的历史内存周期,上述历史内存周期为根据在历史时间段内成功执行上述目标任务所消耗的内存的规律得到的;
步骤S2032,构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为上述目标任务的初始内存值,T为上述目标任务的开始执行时间,y(T-n)为一个上述历史内存周期内执行上述目标任务所需的内存值,n为上述历史内存周期;
步骤S2033,根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。
具体的,这样可以推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
一般情况下,根据目标任务在历史记录中的消耗内存关于执行日期的折线统计图,来确定目标任务的消耗内存的时间周期。
上述目标任务的历史内存记录有多个,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,还包括如下步骤:
步骤S301,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据各上述目标任务的历史内存记录对应的历史执行时间,将多个上述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个上述历史内存记录集对应一个历史执行时段,一个上述历史内存记录集中的所有的上述历史内存记录的历史执行时间均位于该上述历史内存记录集对应的上述历史执行时段内;
步骤S302,根据各上述历史内存记录集对应的上述历史执行时段,确定各上述历史内存记录集对应的计算权重,其中,上述历史执行时段与当前时刻的时间差越小,上述历史执行时段对应的上述历史内存记录集的计算权重越大;
步骤S303,根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值。
具体的,这样可以推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
其中,上述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值,包括如下步骤:
步骤S3031,构建第二内存计算式:
y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为上述初始内存值,T为上述目标任务的开始执行时间,A为上述第一记录集对应的计算权重,B为上述第二记录集对应的计算权重,y(T-1)至(T-7)分别为上述第一记录集中的各上述历史内存记录,y(T-8)+…+y(T-15)分别为上述第二记录集中的各上述历史内存记录;
步骤S3032,根据上述第二内存计算式,确定用于执行上述目标任务的初始内存值。
具体的,这样可以推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
一般情况下,上述第一记录集记录的是目标任务在近7天内的历史记录,上述第二记录集记录的是目标任务在近15天至近7天之内的历史记录。该实施例中,权重为近7天占70%(即A为0.7),近15天占30%(即B为0.3),以此确定此次消耗内存的值。上述第一记录集和第二记录集中记录的数据可以根据实际情况调整,A和B的值也可以相应调整。
步骤S204,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值。
具体的,当新的定期任务开始执行,给该任务设置一个唯一标识号,由于检索到历史纪录内并无相关该任务的历史,此时自动对该任务分配初始资源,初始资源按照集群总资源除以理想并发数分配。若执行成功,将实际消耗内存、运行时间等内容记录到历史记录中。若由于内存不足导致执行失败,将预分配内存值提高至1.1倍继续执行,直至执行成功。
其中,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值,包括:在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,将上述集群总资源和理想并发数的比值,确定为用于执行上述目标任务的初始内存值;和/或,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值之后,上述方法还包括:在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务。
具体的,通过不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生。一般情况下,预设倍为1.1倍。
其中,在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务,包括如下步骤:
步骤S401,在空闲内存值小于上述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对上述作业任务占用的内存求和,得到预备内存值;
步骤S402,在上述预备内存值大于或者等于上述再分配内存值的情况下,保留分配给上述目标任务的内存,并将上述目标任务的优先级调高,以使得在上述作业任务执行完成后立即执行上述目标任务;
步骤S403,在上述预备内存值小于上述再分配内存值的情况下,将分配给上述目标任务的内存释放,并将上述目标任务放置回任务排队序列中,直到上述空闲内存值大于或者等于上述再分配内存值的情况下,再执行上述目标任务。
具体的,通过执行历史记录对当前正在执行任务的时间有一个较为准确的估计,能够判断是否在近期有作业能够释放内存,控制任务的挂起时间,对于可能长时间挂起的任务,及时尽早的释放内存或分配内存,避免挂起时间过长,导致执行时间延长。
其中,第一预设时间段可以为5分钟,当在执行过程中,若出现内存不足的情况,将预分配内存提高至1.1倍,若有内存空闲值大于再分配内存值,则分配相应内存,继续执行;若内存空闲值不足以再分配,查找正在运行的任务,通过任务的标识符,查找历史记录中的平均运行时间,筛选出能够在5分钟内执行完成的作业任务,对这些任务消耗内存求和:若大于需再分配的内存值,则调高该任务优先级,将该任务挂起,待内存符合条件后继续执行;若不满足再分配的内存值,则将该任务释放,将预分配内存提高至1.1倍后,回到排队序列,等资源满足后重新执行。
其中,上述方法还包括如下步骤:
步骤S501,在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;
步骤S502,在当前时刻下的上述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到上述空闲内存值大于上述预设内存值,再将上述未执行任务放置回上述任务排队序列中。
具体的,对于报错的情况,如果由于超出内存限制的原因会直接报错,而由于内存紧张的任务会在重新分配内存后回到队列继续执行,实现了一定程度的自动化,减少了人员工作。对于多个资源占用大的作业同时运行,调度会识别当前集群资源剩余,及时调整并发数量,控制减少之后的作业进入数据库,来减少数据库卡死的可能。
其中,若经过多次重新执行后,预分配内存已超过一定范围,则判断数据或执行语句可能出现问题,任务将自动退出队列并报错,将执行历史同时打印,以供分析报错原因。
若出现一段时间内作业多次报错,此时分析报错时的当前资源状态,若可分配资源已不足全部资源的10%,此时将未执行的任务挂起,并将调度的所有并发降低,直到有任务完成释放资源,之后将并发恢复,调度恢复正常。
本申请的上述资源调度方法,首先获取目标任务的标识号,标识号用于唯一标识目标任务;其次根据目标任务的标识号,确定历史任务记录中是否存在目标任务的历史内存记录;然后在历史任务记录中存在目标任务的历史内存记录的情况下,根据目标任务的历史内存记录,确定用于执行目标任务的初始内存值,目标任务的历史内存记录包括历史时间段内成功执行目标任务的内存值;最后在历史任务记录中不存在目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行目标任务的初始内存值。该方法通过历史任务记录进行分析,使对定期执行的任务内存及其时间消耗有更为明确的判断,不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生,解决了现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
为了使得本领域技术人员能够更加清楚地了解本申请的技术方案,以下将结合具体的实施例对本申请的资源调度方法的实现过程进行详细说明。
本实施例涉及一种具体的资源调度方法,如图3所示,包括如下步骤:
步骤S1:首先通过定期任务的标识码,判断该任务为首次执行,还是已经执行多次(即判断是否存在该任务的历史记录);
步骤S2:在该任务为首次执行的情况下,按照预设值分配内存执行该任务,在该任务为多次执行的情况下,根据历史记录分配执行该任务的内存;
步骤S3:若该任务运行成功,则将实际运行消耗的内存及时间等数据记录到历史记录中,若该任务由于内存不足未执行成功,则将预分配内存调整至1.1倍,并判断是否超出规定范围,如果超出则报错并打印执行记录;
步骤S4:如果未超出规定范围,且内存有剩余的情况下,直接将剩余内存分配后执行,若一定时间段内有可释放内存,则在内存释放后分配内存执行,若短期内无可用内存,则报错并重新进入队列。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种资源调度装置,需要说明的是,本申请实施例的资源调度装置可以用于执行本申请实施例所提供的用于资源调度方法。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
以下对本申请实施例提供的资源调度装置进行介绍。
图4是根据本申请实施例的资源调度装置的示意图。如图4所示,该装置包括获取单元10、第一确定单元20、第二确定单元30和第三确定单元40,获取单元10用于获取目标任务的标识号,上述标识号用于唯一标识上述目标任务;第一确定单元20用于根据上述目标任务的标识号,确定历史任务记录中是否存在上述目标任务的历史内存记录;第二确定单元30用于在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,上述目标任务的历史内存记录包括历史时间段内成功执行上述目标任务的内存值;第三确定单元40用于在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值。
本申请的上述资源调度装置,包括获取单元、第一确定单元、第二确定单元和第三确定单元,获取单元用于获取目标任务的标识号,标识号用于唯一标识目标任务;第一确定单元用于根据目标任务的标识号,确定历史任务记录中是否存在目标任务的历史内存记录;第二确定单元用于在历史任务记录中存在目标任务的历史内存记录的情况下,根据目标任务的历史内存记录,确定用于执行目标任务的初始内存值,目标任务的历史内存记录包括历史时间段内成功执行目标任务的内存值;第三确定单元用于在历史任务记录中不存在目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行目标任务的初始内存值。该装置通过历史任务记录进行分析,使对定期执行的任务内存及其时间消耗有更为明确的判断,不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生,解决了现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
一些可选的实例中,第二确定单元包括第一确定模块、第一构建模块和第二确定模块,第一确定模块用于在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定上述目标任务的历史内存周期,上述历史内存周期为根据在历史时间段内成功执行上述目标任务所消耗的内存的规律得到的;第一构建模块用于构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为上述目标任务的初始内存值,T为上述目标任务的开始执行时间,y(T-n)为一个上述历史内存周期内执行上述目标任务所需的内存值,n为上述历史内存周期;第二确定模块用于根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。
一些可选的实例中,上述目标任务的历史内存记录有多个,第二确定单元包括第一拆分模块、第三确定模块和第四确定模块,第一拆分模块用于在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据各上述目标任务的历史内存记录对应的历史执行时间,将多个上述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个上述历史内存记录集对应一个历史执行时段,一个上述历史内存记录集中的所有的上述历史内存记录的历史执行时间均位于该上述历史内存记录集对应的上述历史执行时段内;第三确定模块用于根据各上述历史内存记录集对应的上述历史执行时段,确定各上述历史内存记录集对应的计算权重,其中,上述历史执行时段与当前时刻的时间差越小,上述历史执行时段对应的上述历史内存记录集的计算权重越大;第四确定模块用于根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值。这样可以推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
一些可选的实例中,上述历史内存记录集有两个,分别为第一记录集和第二记录集,第四确定模块包括第二构建模块和第五确定模块,第二构建模块用于构建第二内存计算式:y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为上述初始内存值,T为上述目标任务的开始执行时间,A为上述第一记录集对应的计算权重,B为上述第二记录集对应的计算权重,y(T-1)至(T-7)分别为上述第一记录集中的各上述历史内存记录,y(T-8)+…+y(T-15)分别为上述第二记录集中的各上述历史内存记录;第五确定模块用于根据上述第二内存计算式,确定用于执行上述目标任务的初始内存值。这样可以推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
本实施例中,第三确定单元包括确定子单元,用于在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,将上述集群总资源和理想并发数的比值,确定为用于执行上述目标任务的初始内存值;上述装置还包括第六确定模块,用于在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值之后,在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务。通过不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生。
一种可选的方案,第六确定模块包括第一确定子模块、第一处理子模块和第二处理子模块,第一确定子模块用于在空闲内存值小于上述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对上述作业任务占用的内存求和,得到预备内存值;第一处理子模块用于在上述预备内存值大于或者等于上述再分配内存值的情况下,保留分配给上述目标任务的内存,并将上述目标任务的优先级调高,以使得在上述作业任务执行完成后立即执行上述目标任务;第二处理子模块用于在上述预备内存值小于上述再分配内存值的情况下,将分配给上述目标任务的内存释放,并将上述目标任务放置回任务排队序列中,直到上述空闲内存值大于或者等于上述再分配内存值的情况下,再执行上述目标任务。通过执行历史记录对当前正在执行任务的时间有一个较为准确的估计,能够判断是否在近期有作业能够释放内存,控制任务的挂起时间,对于可能长时间挂起的任务,及时尽早的释放内存或分配内存,避免挂起时间过长,导致执行时间延长。
作为一种可选的方案,上述装置还包括第七确定模块和处理模块,第七确定模块用于在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;处理模块用于在当前时刻下的上述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到上述空闲内存值大于上述预设内存值,再将上述未执行任务放置回上述任务排队序列中。对于报错的情况,如果由于超出内存限制的原因会直接报错,而由于内存紧张的任务会在重新分配内存后回到队列继续执行,实现了一定程度的自动化,减少了人员工作。对于多个资源占用大的作业同时运行,调度会识别当前集群资源剩余,及时调整并发数量,控制减少之后的作业进入数据库,来减少数据库卡死的可能。
上述资源调度装置包括处理器和存储器,上述获取单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述资源调度方法。
具体地,资源调度方法包括:
步骤S201,获取目标任务的标识号,上述标识号用于唯一标识上述目标任务;
具体的,目标任务的标识号可以用于在历史记录中查找是否存在该目标任务的历史记录。目标任务的标识号可以用于在历史记录中查找是否存在该目标任务的历史记录。例如,在实际执行过程中,需要提前分配一定的处理核数和内存,在分配的过程中可以调节一定的向上浮动值。不同的数量的核数和内存分配会影响到作业的执行效率。对于需要定期执行的任务,执行前需要估算该任务大致的内存消耗。
步骤S202,根据上述目标任务的标识号,确定历史任务记录中是否存在上述目标任务的历史内存记录;
具体的,历史任务记录中还包括作业标识号(任务的标识号)、开始执行时间、当前资源状态、实际消耗资源、运行时间等内容,以保证之后操作的继续进行。
步骤S203,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,上述目标任务的历史内存记录包括历史时间段内成功执行上述目标任务的内存值;
具体的,当定期任务存在历史,则依赖历史消耗对此次消耗进行判断。首先确认该定期任务是否对日期有明显规律,画出消耗内存关于执行日期的折线统计图。若没有明显规律,对历史记录进行加权计算,起始时通过近期的相同作业的执行历史记录推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
步骤S204,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值。
具体的,当新的定期任务开始执行,给该任务设置一个唯一标识号,由于检索到历史纪录内并无相关该任务的历史,此时自动对该任务分配初始资源,初始资源按照集群总资源除以理想并发数分配。若执行成功,将实际消耗内存、运行时间等内容记录到历史记录中。若由于内存不足导致执行失败,将预分配内存值提高至1.1倍继续执行,直至执行成功。
可选地,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定上述目标任务的历史内存周期,上述历史内存周期为根据在历史时间段内成功执行上述目标任务所消耗的内存的规律得到的;构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为上述目标任务的初始内存值,T为上述目标任务的开始执行时间,y(T-n)为一个上述历史内存周期内执行上述目标任务所需的内存值,n为上述历史内存周期;根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。
可选地,上述目标任务的历史内存记录有多个,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据各上述目标任务的历史内存记录对应的历史执行时间,将多个上述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个上述历史内存记录集对应一个历史执行时段,一个上述历史内存记录集中的所有的上述历史内存记录的历史执行时间均位于该上述历史内存记录集对应的上述历史执行时段内;根据各上述历史内存记录集对应的上述历史执行时段,确定各上述历史内存记录集对应的计算权重,其中,上述历史执行时段与当前时刻的时间差越小,上述历史执行时段对应的上述历史内存记录集的计算权重越大;根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值。
可选地,上述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值,包括:构建第二内存计算式:y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为上述初始内存值,T为上述目标任务的开始执行时间,A为上述第一记录集对应的计算权重,B为上述第二记录集对应的计算权重,y(T-1)至(T-7)分别为上述第一记录集中的各上述历史内存记录,y(T-8)+…+y(T-15)分别为上述第二记录集中的各上述历史内存记录;根据上述第二内存计算式,确定用于执行上述目标任务的初始内存值。
可选地,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值,包括:在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,将上述集群总资源和理想并发数的比值,确定为用于执行上述目标任务的初始内存值;和/或,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值之后,上述方法还包括:在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务。
可选地,在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务,包括:在空闲内存值小于上述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对上述作业任务占用的内存求和,得到预备内存值;在上述预备内存值大于或者等于上述再分配内存值的情况下,保留分配给上述目标任务的内存,并将上述目标任务的优先级调高,以使得在上述作业任务执行完成后立即执行上述目标任务;在上述预备内存值小于上述再分配内存值的情况下,将分配给上述目标任务的内存释放,并将上述目标任务放置回任务排队序列中,直到上述空闲内存值大于或者等于上述再分配内存值的情况下,再执行上述目标任务。
可选地,上述方法还包括:在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;在当前时刻下的上述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到上述空闲内存值大于上述预设内存值,再将上述未执行任务放置回上述任务排队序列中。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述资源调度方法。
具体地,资源调度方法包括:
步骤S201,获取目标任务的标识号,上述标识号用于唯一标识上述目标任务;
具体的,目标任务的标识号可以用于在历史记录中查找是否存在该目标任务的历史记录。目标任务的标识号可以用于在历史记录中查找是否存在该目标任务的历史记录。例如,在实际执行过程中,需要提前分配一定的处理核数和内存,在分配的过程中可以调节一定的向上浮动值。不同的数量的核数和内存分配会影响到作业的执行效率。对于需要定期执行的任务,执行前需要估算该任务大致的内存消耗。
步骤S202,根据上述目标任务的标识号,确定历史任务记录中是否存在上述目标任务的历史内存记录;
具体的,历史任务记录中还包括作业标识号(任务的标识号)、开始执行时间、当前资源状态、实际消耗资源、运行时间等内容,以保证之后操作的继续进行。
步骤S203,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,上述目标任务的历史内存记录包括历史时间段内成功执行上述目标任务的内存值;
具体的,当定期任务存在历史,则依赖历史消耗对此次消耗进行判断。首先确认该定期任务是否对日期有明显规律,画出消耗内存关于执行日期的折线统计图。若没有明显规律,对历史记录进行加权计算,起始时通过近期的相同作业的执行历史记录推断此次执行的大致消耗,能够在一开始就将大致消耗划定在一个合适的范围内,之后调整的范围不会太大,对于申请资源来看更加容易,更能达到不会长时间挂起或报超出内存的问题。
步骤S204,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值。
具体的,当新的定期任务开始执行,给该任务设置一个唯一标识号,由于检索到历史纪录内并无相关该任务的历史,此时自动对该任务分配初始资源,初始资源按照集群总资源除以理想并发数分配。若执行成功,将实际消耗内存、运行时间等内容记录到历史记录中。若由于内存不足导致执行失败,将预分配内存值提高至1.1倍继续执行,直至执行成功。
可选地,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定上述目标任务的历史内存周期,上述历史内存周期为根据在历史时间段内成功执行上述目标任务所消耗的内存的规律得到的;构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为上述目标任务的初始内存值,T为上述目标任务的开始执行时间,y(T-n)为一个上述历史内存周期内执行上述目标任务所需的内存值,n为上述历史内存周期;根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。
可选地,上述目标任务的历史内存记录有多个,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据各上述目标任务的历史内存记录对应的历史执行时间,将多个上述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个上述历史内存记录集对应一个历史执行时段,一个上述历史内存记录集中的所有的上述历史内存记录的历史执行时间均位于该上述历史内存记录集对应的上述历史执行时段内;根据各上述历史内存记录集对应的上述历史执行时段,确定各上述历史内存记录集对应的计算权重,其中,上述历史执行时段与当前时刻的时间差越小,上述历史执行时段对应的上述历史内存记录集的计算权重越大;根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值。
可选地,上述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值,包括:构建第二内存计算式:y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为上述初始内存值,T为上述目标任务的开始执行时间,A为上述第一记录集对应的计算权重,B为上述第二记录集对应的计算权重,y(T-1)至(T-7)分别为上述第一记录集中的各上述历史内存记录,y(T-8)+…+y(T-15)分别为上述第二记录集中的各上述历史内存记录;根据上述第二内存计算式,确定用于执行上述目标任务的初始内存值。
可选地,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值,包括:在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,将上述集群总资源和理想并发数的比值,确定为用于执行上述目标任务的初始内存值;和/或,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值之后,上述方法还包括:在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务。
可选地,在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务,包括:在空闲内存值小于上述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对上述作业任务占用的内存求和,得到预备内存值;在上述预备内存值大于或者等于上述再分配内存值的情况下,保留分配给上述目标任务的内存,并将上述目标任务的优先级调高,以使得在上述作业任务执行完成后立即执行上述目标任务;在上述预备内存值小于上述再分配内存值的情况下,将分配给上述目标任务的内存释放,并将上述目标任务放置回任务排队序列中,直到上述空闲内存值大于或者等于上述再分配内存值的情况下,再执行上述目标任务。
可选地,上述方法还包括:在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;在当前时刻下的上述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到上述空闲内存值大于上述预设内存值,再将上述未执行任务放置回上述任务排队序列中。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S201,获取目标任务的标识号,上述标识号用于唯一标识上述目标任务;
步骤S202,根据上述目标任务的标识号,确定历史任务记录中是否存在上述目标任务的历史内存记录;
步骤S203,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,上述目标任务的历史内存记录包括历史时间段内成功执行上述目标任务的内存值;
步骤S204,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值。
本文中的设备可以是服务器、PC、PAD、手机等。
可选地,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定上述目标任务的历史内存周期,上述历史内存周期为根据在历史时间段内成功执行上述目标任务所消耗的内存的规律得到的;构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为上述目标任务的初始内存值,T为上述目标任务的开始执行时间,y(T-n)为一个上述历史内存周期内执行上述目标任务所需的内存值,n为上述历史内存周期;根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。
可选地,上述目标任务的历史内存记录有多个,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据各上述目标任务的历史内存记录对应的历史执行时间,将多个上述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个上述历史内存记录集对应一个历史执行时段,一个上述历史内存记录集中的所有的上述历史内存记录的历史执行时间均位于该上述历史内存记录集对应的上述历史执行时段内;根据各上述历史内存记录集对应的上述历史执行时段,确定各上述历史内存记录集对应的计算权重,其中,上述历史执行时段与当前时刻的时间差越小,上述历史执行时段对应的上述历史内存记录集的计算权重越大;根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值。
可选地,上述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值,包括:构建第二内存计算式:y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为上述初始内存值,T为上述目标任务的开始执行时间,A为上述第一记录集对应的计算权重,B为上述第二记录集对应的计算权重,y(T-1)至(T-7)分别为上述第一记录集中的各上述历史内存记录,y(T-8)+…+y(T-15)分别为上述第二记录集中的各上述历史内存记录;根据上述第二内存计算式,确定用于执行上述目标任务的初始内存值。
可选地,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值,包括:在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,将上述集群总资源和理想并发数的比值,确定为用于执行上述目标任务的初始内存值;和/或,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值之后,上述方法还包括:在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务。
可选地,在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务,包括:在空闲内存值小于上述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对上述作业任务占用的内存求和,得到预备内存值;在上述预备内存值大于或者等于上述再分配内存值的情况下,保留分配给上述目标任务的内存,并将上述目标任务的优先级调高,以使得在上述作业任务执行完成后立即执行上述目标任务;在上述预备内存值小于上述再分配内存值的情况下,将分配给上述目标任务的内存释放,并将上述目标任务放置回任务排队序列中,直到上述空闲内存值大于或者等于上述再分配内存值的情况下,再执行上述目标任务。
可选地,上述方法还包括:在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;在当前时刻下的上述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到上述空闲内存值大于上述预设内存值,再将上述未执行任务放置回上述任务排队序列中。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S201,获取目标任务的标识号,上述标识号用于唯一标识上述目标任务;
步骤S202,根据上述目标任务的标识号,确定历史任务记录中是否存在上述目标任务的历史内存记录;
步骤S203,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,上述目标任务的历史内存记录包括历史时间段内成功执行上述目标任务的内存值;
步骤S204,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值。
可选地,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定上述目标任务的历史内存周期,上述历史内存周期为根据在历史时间段内成功执行上述目标任务所消耗的内存的规律得到的;构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为上述目标任务的初始内存值,T为上述目标任务的开始执行时间,y(T-n)为一个上述历史内存周期内执行上述目标任务所需的内存值,n为上述历史内存周期;根据上述第一内存计算式,确定用于执行上述目标任务的上述初始内存值。
可选地,上述目标任务的历史内存记录有多个,在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据上述目标任务的历史内存记录,确定用于执行上述目标任务的初始内存值,包括:在上述历史任务记录中存在上述目标任务的历史内存记录的情况下,根据各上述目标任务的历史内存记录对应的历史执行时间,将多个上述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个上述历史内存记录集对应一个历史执行时段,一个上述历史内存记录集中的所有的上述历史内存记录的历史执行时间均位于该上述历史内存记录集对应的上述历史执行时段内;根据各上述历史内存记录集对应的上述历史执行时段,确定各上述历史内存记录集对应的计算权重,其中,上述历史执行时段与当前时刻的时间差越小,上述历史执行时段对应的上述历史内存记录集的计算权重越大;根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值。
可选地,上述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的上述目标任务的历史内存记录和各上述历史内存记录集对应的计算权重,确定用于执行上述目标任务的初始内存值,包括:构建第二内存计算式:y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为上述初始内存值,T为上述目标任务的开始执行时间,A为上述第一记录集对应的计算权重,B为上述第二记录集对应的计算权重,y(T-1)至(T-7)分别为上述第一记录集中的各上述历史内存记录,y(T-8)+…+y(T-15)分别为上述第二记录集中的各上述历史内存记录;根据上述第二内存计算式,确定用于执行上述目标任务的初始内存值。
可选地,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值,包括:在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,将上述集群总资源和理想并发数的比值,确定为用于执行上述目标任务的初始内存值;和/或,在上述历史任务记录中不存在上述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行上述目标任务的上述初始内存值之后,上述方法还包括:在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务。
可选地,在上述初始内存值不支持上述目标任务完全执行的情况下,将上述初始内存值的预设倍确定为上述目标任务的再分配内存值,并采用上述再分配内存值执行上述目标任务,包括:在空闲内存值小于上述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对上述作业任务占用的内存求和,得到预备内存值;在上述预备内存值大于或者等于上述再分配内存值的情况下,保留分配给上述目标任务的内存,并将上述目标任务的优先级调高,以使得在上述作业任务执行完成后立即执行上述目标任务;在上述预备内存值小于上述再分配内存值的情况下,将分配给上述目标任务的内存释放,并将上述目标任务放置回任务排队序列中,直到上述空闲内存值大于或者等于上述再分配内存值的情况下,再执行上述目标任务。
可选地,上述方法还包括:在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;在当前时刻下的上述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到上述空闲内存值大于上述预设内存值,再将上述未执行任务放置回上述任务排队序列中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的上述资源调度方法,首先获取目标任务的标识号,标识号用于唯一标识目标任务;其次根据目标任务的标识号,确定历史任务记录中是否存在目标任务的历史内存记录;然后在历史任务记录中存在目标任务的历史内存记录的情况下,根据目标任务的历史内存记录,确定用于执行目标任务的初始内存值,目标任务的历史内存记录包括历史时间段内成功执行目标任务的内存值;最后在历史任务记录中不存在目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行目标任务的初始内存值。该方法通过历史任务记录进行分析,使对定期执行的任务内存及其时间消耗有更为明确的判断,不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生,解决了现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
2)、本申请的上述资源调度装置,包括获取单元、第一确定单元、第二确定单元和第三确定单元,获取单元用于获取目标任务的标识号,标识号用于唯一标识目标任务;第一确定单元用于根据目标任务的标识号,确定历史任务记录中是否存在目标任务的历史内存记录;第二确定单元用于在历史任务记录中存在目标任务的历史内存记录的情况下,根据目标任务的历史内存记录,确定用于执行目标任务的初始内存值,目标任务的历史内存记录包括历史时间段内成功执行目标任务的内存值;第三确定单元用于在历史任务记录中不存在目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行目标任务的初始内存值。该装置通过历史任务记录进行分析,使对定期执行的任务内存及其时间消耗有更为明确的判断,不断优化分配给任务的内存值,使其更加接近实际需要的内存值,避免因内存不足导致的作业失败和因内存分配过大造成的内存利用率较低的情况发生,解决了现有技术的调度系统无法获取数据库整个资源的使用情况及各个作业的资源占用情况,只能被动分配资源进行作业运行,导致内存利用率较低的问题。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种资源调度方法,其特征在于,包括:
获取目标任务的标识号,所述标识号用于唯一标识所述目标任务;
根据所述目标任务的标识号,确定历史任务记录中是否存在所述目标任务的历史内存记录;
在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,所述目标任务的历史内存记录包括历史时间段内成功执行所述目标任务的内存值;
在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值。
2.根据权利要求1所述的资源调度方法,其特征在于,在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,包括:
在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定所述目标任务的历史内存周期,所述历史内存周期为根据在历史时间段内成功执行所述目标任务所消耗的内存的规律得到的;
构建第一内存计算式y(T)=avg(y(T-n)),其中,y(T)为所述目标任务的初始内存值,T为所述目标任务的开始执行时间,y(T-n)为一个所述历史内存周期内执行所述目标任务所需的内存值,n为所述历史内存周期;
根据所述第一内存计算式,确定用于执行所述目标任务的所述初始内存值。
3.根据权利要求1所述的资源调度方法,其特征在于,所述目标任务的历史内存记录有多个,在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,包括:
在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据各所述目标任务的历史内存记录对应的历史执行时间,将多个所述目标任务的历史内存记录拆分为至少一个历史内存记录集,一个所述历史内存记录集对应一个历史执行时段,一个所述历史内存记录集中的所有的所述历史内存记录的历史执行时间均位于该所述历史内存记录集对应的所述历史执行时段内;
根据各所述历史内存记录集对应的所述历史执行时段,确定各所述历史内存记录集对应的计算权重,其中,所述历史执行时段与当前时刻的时间差越小,所述历史执行时段对应的所述历史内存记录集的计算权重越大;
根据所有的所述目标任务的历史内存记录和各所述历史内存记录集对应的计算权重,确定用于执行所述目标任务的初始内存值。
4.根据权利要求3所述的资源调度方法,其特征在于,所述历史内存记录集有两个,分别为第一记录集和第二记录集,根据所有的所述目标任务的历史内存记录和各所述历史内存记录集对应的计算权重,确定用于执行所述目标任务的初始内存值,包括:
构建第二内存计算式:
y(T)=A×avg(y(T-1)+…+y(T-7))+Bavg(y(T-8)+…+y(T-15)),其中,y(T)为所述初始内存值,T为所述目标任务的开始执行时间,A为所述第一记录集对应的计算权重,B为所述第二记录集对应的计算权重,y(T-1)至(T-7)分别为所述第一记录集中的各所述历史内存记录,y(T-8)+…+y(T-15)分别为所述第二记录集中的各所述历史内存记录;
根据所述第二内存计算式,确定用于执行所述目标任务的初始内存值。
5.根据权利要求1所述的资源调度方法,其特征在于,
在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值,包括:在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,将所述集群总资源和理想并发数的比值,确定为用于执行所述目标任务的初始内存值;
和/或,
在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值之后,所述方法还包括:在所述初始内存值不支持所述目标任务完全执行的情况下,将所述初始内存值的预设倍确定为所述目标任务的再分配内存值,并采用所述再分配内存值执行所述目标任务。
6.根据权利要求5所述的资源调度方法,其特征在于,在所述初始内存值不支持所述目标任务完全执行的情况下,将所述初始内存值的预设倍确定为所述目标任务的再分配内存值,并采用所述再分配内存值执行所述目标任务,包括:
在空闲内存值小于所述再分配内存值的情况下,确定在第一预设时间段内能够执行完成的作业任务,并对所述作业任务占用的内存求和,得到预备内存值;
在所述预备内存值大于或者等于所述再分配内存值的情况下,保留分配给所述目标任务的内存,并将所述目标任务的优先级调高,以使得在所述作业任务执行完成后立即执行所述目标任务;
在所述预备内存值小于所述再分配内存值的情况下,将分配给所述目标任务的内存释放,并将所述目标任务放置回任务排队序列中,直到所述空闲内存值大于或者等于所述再分配内存值的情况下,再执行所述目标任务。
7.根据权利要求1所述的资源调度方法,其特征在于,所述方法还包括:
在第二预设时间段内的作业报错次数大于或者等于预设次数的情况下,确定当前时刻下的空闲内存值;
在当前时刻下的所述空闲内存值小于或者等于预设内存值的情况下,将当前时刻下的未执行任务从任务排队序列中删除,并降低调度的并发任务数量,直到所述空闲内存值大于所述预设内存值,再将所述未执行任务放置回所述任务排队序列中。
8.一种资源调度装置,其特征在于,包括:
获取单元,用于获取目标任务的标识号,所述标识号用于唯一标识所述目标任务;
第一确定单元,用于根据所述目标任务的标识号,确定历史任务记录中是否存在所述目标任务的历史内存记录;
第二确定单元,用于在所述历史任务记录中存在所述目标任务的历史内存记录的情况下,根据所述目标任务的历史内存记录,确定用于执行所述目标任务的初始内存值,所述目标任务的历史内存记录包括历史时间段内成功执行所述目标任务的内存值;
第三确定单元,用于在所述历史任务记录中不存在所述目标任务的历史内存记录的情况下,根据集群总资源和理想并发数,确定用于执行所述目标任务的所述初始内存值。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的资源调度方法。
10.一种电子设备,其特征在于,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311873336.4A CN117851008A (zh) | 2023-12-29 | 2023-12-29 | 资源调度方法、资源调度装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311873336.4A CN117851008A (zh) | 2023-12-29 | 2023-12-29 | 资源调度方法、资源调度装置、存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851008A true CN117851008A (zh) | 2024-04-09 |
Family
ID=90529873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311873336.4A Pending CN117851008A (zh) | 2023-12-29 | 2023-12-29 | 资源调度方法、资源调度装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851008A (zh) |
-
2023
- 2023-12-29 CN CN202311873336.4A patent/CN117851008A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6618820B1 (en) | Method for configuring an application server system | |
CN107580023B (zh) | 一种动态调整任务分配的流处理作业调度方法及系统 | |
CN102567086B (zh) | 一种任务调度的方法、设备和系统 | |
US6539445B1 (en) | Method for load balancing in an application server system | |
CN106406983B (zh) | 一种集群中的任务调度方法及装置 | |
US8209695B1 (en) | Reserving resources in a resource-on-demand system for user desktop utility demand | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
US6502148B1 (en) | System for scaling an application server system | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN106293893B (zh) | 作业调度方法、装置及分布式系统 | |
US8984521B2 (en) | Computer system performance by applying rate limits to control block tenancy | |
CN111506398B (zh) | 任务调度方法和装置、存储介质、电子装置 | |
CN106462593B (zh) | 大规模并行处理数据库的系统和方法 | |
CN102868573A (zh) | Web服务负载云测试方法和装置 | |
CN109992418B (zh) | Sla感知的多租户大数据平台资源优先级调度方法及系统 | |
CN101341468A (zh) | 信息处理装置、计算机、资源分配方法及资源分配程序 | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN110543352B (zh) | 调度系统的任务分配方法及其相关的装置 | |
CN107430526B (zh) | 用于调度数据处理的方法和节点 | |
CN114265679A (zh) | 数据处理方法、装置和服务器 | |
CN110099083A (zh) | 一种用于服务器集群的负载均衡调度方法及装置 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
CN111240824A (zh) | 一种cpu资源调度方法及电子设备 | |
CN113590320A (zh) | 分布式批量任务调度的资源处理方法、装置、设备及介质 | |
CN116820729A (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 |