本申请公开了一种资源调度方法及装置。本申请所提供的技术方案,将每次分配操作所分配出资源按照不同的释放批次切分为不同的资源子集。这样,每当实际回收一份资源子集后,如果该子集处于临时闲置状态,则可以从当前正在被占用资源中,找到届时能够接替上述临时闲置子集的被占用子集,从而将临时闲置子集中的资源转换为非临时闲置资源。由于非临时闲置资源可以参与正常的资源分配而不受周期性资源调度的限制,因此使得整体的资源利用率得到了有效的提升。
【技术实现步骤摘要】
一种资源调度方法及装置
本申请涉及信息处理
,尤其涉及一种资源调度方法及装置。
技术介绍
资源调度是计算机应用
的一种常见概念,其既可以指一台设备内部的资源调度(例如为不同的应用程序分配处理线程、内存资源等),也可以指也可以多台设备之间的任务调度(例如为不同的设备分配带宽资源)。在这些应用场景中,“资源”往往都是有限的,而资源使用方对资源的需求远大于资源的总数量,因此,如何对有限的资源进行合理的调度、使得资源利用率能够尽量提高,一直是研究人员所关注的重要方向。周期性调度是资源调度中的一种常见策略,这种方式适用于资源使用方对资源具有规律性需求的应用场景。例如,在一个定时任务系统中,应用程序A需要在每个整点的第1~10分钟运行、应用程序B需要在每个整点的第6~15分钟运行、应用程序C需要在每个整点的第11~20分钟运行。可以看出,A和C的运行时段完全错开,因此理论上可以设置A与C复用相同的处理线程。假设A和C运行均需要5个处理线程,则在每个整点的第0分钟,从线程池中将5个线程分配给A使用,在第10分钟,A运行完毕后,将5个线程释放回线程池,这5个线程又可以在第11分钟分配给应用程序C使用。然而在实际应用中,很多应用程序在运行期间对于线程的需求并不是保持不变的,而且往往是在程序运行的初始阶段需要较多的线程,随着运行时间的推进,所需的线程数量逐渐减少。例如,应用程序A在运行的前1~5分钟需要5个线程,在第6~10分钟仅需要2个线程。其中3个线程将在第5分钟使用完毕后提前释放回线程池,也就是说,这3个线程在每个整点的第6~10分钟是处于一种临时的完全闲置状态的。考虑到很多应用程序都具有这样的特性,因此系统整体的线程资源利用率仍然较低。除了处理线程分配外,在其他一些应用场景,例如对于有限带宽资源、有限缓存资源的分配等等,也都存在着类似的资源闲置问题。
技术实现思路
针对上述技术问题,本申请提供一种资源调度方法及装置,技术方案如下:根据本申请的第1方面,提供一种资源调度方法,将每次分配操作所分配出的资源定义为一个资源集合、并将一个资源集合内分不同批次释放的资源定义为不同的资源子集,所述方法包括:针对已分配的任意集合,确定该集合内各子集的剩余占用时长;接收到已释放的任意子集、并确定该子集内的资源为临时闲置资源后,确定该闲置子集的剩余闲置时长;在已分配且未释放的其他集合中,查找与所述闲置子集相匹配的当前被占用子集;其中,所述其他集合,与所述闲置子集所属的集合为不同集合;所述匹配为:被占用子集的剩余占用时长不大于所述闲置子集的剩余闲置时长、且被占用子集的资源数量不小于所述闲置子集的资源数量;利用所查找到的被占用子集对所述闲置子集进行功能替换,并将所述闲置子集内的资源标识为非临时闲置资源;所述功能替换为:对资源分配计划进行更新,针对原本需要所述闲置子集资源承载的资源分配操作,将其承载对象修改为所查找到被占用子集的资源。根据本申请的第2方面,提供一种资源调度装置,将每次分配操作所分配出的资源定义为一个资源集合、并将一个资源集合内分不同批次释放的资源定义为不同的资源子集,所述装置包括:占用时长确定模块,用于针对已分配的任意集合,确定该集合内各子集的剩余占用时长;闲置时长确定模块,用于在接收到已释放的任意子集、并确定该子集内的资源为临时闲置资源后,确定该闲置子集的剩余闲置时长;查找模块,用于在已分配且未释放的其他集合中,查找与所述闲置子集相匹配的当前被占用子集;其中,所述其他集合,与所述闲置子集所属的集合为不同集合;所述匹配为:被占用子集的剩余占用时长不大于所述闲置子集的剩余闲置时长、且被占用子集的资源数量不小于所述闲置子集的资源数量;替换模块,用于利用所查找到的被占用子集对所述闲置子集进行功能替换,并将所述闲置子集内的资源标识为非临时闲置资源;所述功能替换为:对资源分配计划进行更新,针对原本需要所述闲置子集资源承载的资源分配操作,将其承载对象修改为所查找到被占用子集的资源。本申请所提供的技术方案,将每次分配操作所分配出资源按照不同的释放批次切分为不同的资源子集。这样,每当实际回收一份资源子集后,如果该子集处于临时闲置状态,则可以从当前正在被占用资源中,找到届时能够接替上述临时闲置子集的被占用子集,从而将临时闲置子集中的资源转换为非临时闲置资源。由于非临时闲置资源可以参与正常的资源分配而不受周期性资源调度的限制,因此使得整体的资源利用率得到了有效的提升。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本申请的资源调度方法的流程示意图;图2是本申请的资源调度装置的结构示意图;图3是用于配置本申请装置的一种设备的结构示意图。具体实施方式为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
技术介绍
中所描述的周期性资源调度是一种理想情况,更多的实际应用中,资源使用方对于资源的使用需求一般不会是完全固定的,因此往往需要预留出一部分资源,以应对不规律的资源使用需求。仍以线程资源调度为例,由于每个线程都会消耗内存,如果同时运行的线程数量过多,会对系统的性能造成较大影响,因此,一般对会系统设定线程池,通过限定线程数量的方式来保证系统的性能。应用周期性资源调度的方案,在线程数量受限的前提下,如果系统中各应用程序的运行时间及线程需求数量都是相对固定的,那么理论上可以通过合理的安排,令有限的线程资源得到充分的利用。然而在实际应用中,不可能所有的应用程序都有固定的运行时间,因此除了给周期性执行的应用程序分配线程之外,一般还要在线程池中保留一定数量的线程,以应对那些突发的应用程序执行需求。考虑到这种实际应用需求,这些保留的线程也可以视为一种有效的资源占用。然而,对于
技术介绍
中所描述的情况,尽管应用程序A提前释放了3个线程,但是这三个线程还要在第11分钟时分配给应用程序C使用,因此这3个线程只是临时闲置,并不能等同于其他的保留线程,用于分配给突发的应用程序,除非刚好有应用程序需要在第6~10分钟使用线程,但是这种情况发生几率非常低。针对上述问题,本申请提供资源调度方案如下:首先,将每次分配操作所分配出的资源定义为一个资源集合,并且将一个资源集合内分不同批次释放的资源定义为不同的资源子集。进而,对于任意一份已经分配出去的资源集合,基于资源使用方对资源的使用需求规律,可以确定出该集合内各个子集对应的资源释放时间,从而确定:从当前时刻开始计时,各个子集分别还需要多久会被释放,也即各个子集的剩余占用时长。可以理解的是,每个资源子集的“剩余占用时长”是会随着时间的推移而动态减小的。当某个资源子集的“剩余占用时长”变为0时,意味着对应本文档来自技高网...

【技术保护点】
一种资源调度方法,其特征在于,将每次分配操作所分配出的资源定义为一个资源集合、并将一个资源集合内分不同批次释放的资源定义为不同的资源子集,所述方法包括:针对已分配的任意集合,确定该集合内各子集的剩余占用时长;接收到已释放的任意子集、并确定该子集内的资源为临时闲置资源后,确定该闲置子集的剩余闲置时长;在已分配且未释放的其他集合中,查找与所述闲置子集相匹配的当前被占用子集;其中,所述其他集合,与所述闲置子集所属的集合为不同集合;所述匹配为:被占用子集的剩余占用时长不大于所述闲置子集的剩余闲置时长、且被占用子集的资源数量不小于所述闲置子集的资源数量;利用所查找到的被占用子集对所述闲置子集进行功能替换,并将所述闲置子集内的资源标识为非临时闲置资源;所述功能替换为:对资源分配计划进行更新,针对原本需要所述闲置子集资源承载的资源分配操作,将其承载对象修改为所查找到被占用子集的资源。
【技术特征摘要】
1.一种资源调度方法,其特征在于,将每次分配操作所分配出的资源定义为一个资源集合、并将一个资源集合内分不同批次释放的资源定义为不同的资源子集,所述方法包括:针对已分配的任意集合,确定该集合内各子集的剩余占用时长;接收到已释放的任意子集、并确定该子集内的资源为临时闲置资源后,确定该闲置子集的剩余闲置时长;在已分配且未释放的其他集合中,查找与所述闲置子集相匹配的当前被占用子集;其中,所述其他集合,与所述闲置子集所属的集合为不同集合;所述匹配为:被占用子集的剩余占用时长不大于所述闲置子集的剩余闲置时长、且被占用子集的资源数量不小于所述闲置子集的资源数量;利用所查找到的被占用子集对所述闲置子集进行功能替换,并将所述闲置子集内的资源标识为非临时闲置资源;所述功能替换为:对资源分配计划进行更新,针对原本需要所述闲置子集资源承载的资源分配操作,将其承载对象修改为所查找到被占用子集的资源。2.根据权利要求1所述的方法,其特征在于,所述查找与所述闲置子集相匹配的当前被占用子集,包括:查找两个以上的当前被占用子集;所述两个以上当前被占用子集的剩余占用时长均不大于所述闲置子集的剩余闲置时长、且所述两个以上被占用子集的资源数量总和不小于所述闲置子集的资源数量。3.根据权利要求1所述的方法,其特征在于,所述查找与所述闲置子集相匹配的当前被占用子集,包括:查找满足以下条件的被占用子集:被占用子集的剩余占用时长等于所述闲置子集的剩余闲置时长、且被占用子集的资源数量等于所述闲置子集的资源数量。4.根据权利要求1所述的方法,其特征在于,所述查找与所述闲置子集相匹配的当前被占用子集,包括:对满足匹配条件的被占用子集的剩余占用时长进行降序排列,优先选取剩余占用时长较高的被占用子集作为查找结果。5.根据权利要求1所述的方法,其特征在于,所述查找与所述闲置子集相匹配的当前被占用子集,包括:对满足匹配条件的被占用子集的资源数量进行升序排列,优先选取资源数量较小的被占用子集...
【专利技术属性】
技术研发人员:冯江,骆贞轩,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。