内存分配方法、装置、计算机设备和存储介质与流程

文档序号:34861342发布日期:2023-07-23 09:31阅读:55来源:国知局
内存分配方法、装置、计算机设备和存储介质与流程

本技术涉及计算机,特别是涉及一种内存分配方法、装置、计算机设备和存储介质。


背景技术:

1、随着计算机技术以及互联网技术的发展,在云计算场景中,任务运行时会有明显的峰谷特性,通常任务高峰期时,主机硬件资源利用率会比较高,任务低峰期时资源利用率降低。

2、然而,目前的内存分配方式中,通常将不同类型的任务混合部署在同一台云主机上,由于某些类型的任务需要持续消耗硬件资源,会对其它的任务产生严重干扰,导致其它的任务产生较大的延时,无法保证及时性,从而导致任务的内存服务质量(qos,quality ofservice)无法保证。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够有效保证任务的内存服务质量的内存分配方法、装置、计算机设备和存储介质。

2、一种内存分配方法,所述方法包括:接收用于为目标任务申请内存的内存申请请求;所述内存申请请求中携带所述目标任务的第一内存服务质量优先级;当系统内存的剩余容量小于所述目标任务所需的内存空间时,查找不高于所述第一内存服务质量优先级的任务对应的进程;将所述任务对应的进程加入到加速调度队列中;当满足调度条件时,优先调度所述加速调度队列中的进程,以使调度的所述进程终止运行并释放占用的内存块;将释放的所述内存块分配给所述目标任务。

3、一种内存分配装置,所述装置包括:接收模块,用于接收用于为目标任务申请内存的内存申请请求;所述内存申请请求中携带所述目标任务的第一内存服务质量优先级;查找模块,用于当系统内存的剩余容量小于所述目标任务所需的内存空间时,查找不高于所述第一内存服务质量优先级的任务对应的进程;加入模块,用于将所述任务对应的进程加入到加速调度队列中;调度模块,用于当满足调度条件时,优先调度所述加速调度队列中的进程,以使调度的所述进程终止运行并释放占用的内存块;分配模块,用于将释放的所述内存块分配给所述目标任务。

4、在一个实施例中,所述装置还包括:选取模块,用于当所述系统内存的剩余容量大于或等于所述目标任务所需的内存空间时,在所述系统内存剩余的内存中,按照所述目标任务所需的内存空间选取内存块;分配模块还用于将选取的所述内存块分配给所述目标任务。

5、在一个实施例中,所述装置还包括:确定模块,用于确定当前运行的任务的第二内存服务质量优先级;对比模块,用于对比所述第二内存服务质量优先级与所述第一内存服务质量优先级;查找模块还用于在当前运行的所述任务对应的进程中,基于对比的结果查找不高于所述第一内存服务质量优先级的任务对应的进程。

6、在一个实施例中,确定模块还用于当所述第二内存服务质量优先级符合离线任务优先级时,确定所述第二内存服务质量优先级对应的任务为离线任务;选取模块还用于在当前运行的所述任务对应的进程中,优先选取所述离线任务的进程;所述离线任务的内存服务质量优先级不高于所述第一内存服务质量优先级。

7、在一个实施例中,所述装置还包括:获取模块,用于当所述第一内存服务质量优先级符合所述离线任务优先级时,在当前运行的所述任务对应的进程中获取所述离线任务的进程;选取模块还用于在所述离线任务的进程中,优先选取内存占用值大于占用阈值的进程。

8、在一个实施例中,选取模块还用于在低于所述第一内存服务质量优先级的任务对应的进程中,优先选取所述第二内存服务质量优先级符合第一优先级条件的任务所对应的进程;若未查找到符合所述第一优先级条件的任务所对应的进程,则选取所述第二内存服务质量优先级符合第二优先级条件的任务所对应的进程;若未查找到符合所述第二优先级条件的任务所对应的进程,则在等于所述第一内存服务质量优先级的任务对应的进程中,选取内存占用值大于占用阈值的进程。

9、在一个实施例中,所述装置还包括:检查模块,用于优先检查所述加速调度队列是否为空队列;调度模块还用于若所述加速调度队列不为空队列,则从所述加速调度队列中调度进程,并将调度的所述进程作为下一个在处理器核心执行的进程,以使所述进程在所述处理器核心执行过程中终止运行并释放占用的内存块;所述加速调度队列用于存放待释放内存块的进程以使存放的所述进程被优先调度。

10、在一个实施例中,所述装置还包括:监测模块,用于监测调度事件;所述调度事件包括时钟中断或内核态返回的用户态;检查模块还用于当监测到所述调度事件时,优先检查所述加速调度队列是否为空队列。

11、在一个实施例中,所述装置还包括:发送模块,用于向调度的所述进程发送终止信号,基于所述终止信号唤醒调度的所述进程;将调度的所述进程作为下一个在处理器核心执行的进程;执行模块,用于当所述处理器核心未被抢占时,通过所述处理器核心执行调度的所述进程,以使调度的所述进程处理所述终止信号,直到处理完所述终止信号的相关逻辑后退出,并释放占用的内存块。

12、在一个实施例中,所述装置还包括:接收模块还用于通过优先级设置接口接收到各任务的内存服务质量优先级参数;存入模块,用于将所述内存服务质量优先级参数存入各所述任务的进程对应的数据集内;获取模块还用于在各所述任务的进程对应的数据集内,获取各所述任务的第二内存服务质量优先级;选取模块还用于在各所述任务的进程中,选取所述第二内存服务质量优先级不高于所述第一内存服务质量优先级的任务对应的进程。

13、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收用于为目标任务申请内存的内存申请请求;所述内存申请请求中携带所述目标任务的第一内存服务质量优先级;当系统内存的剩余容量小于所述目标任务所需的内存空间时,查找不高于所述第一内存服务质量优先级的任务对应的进程;将所述任务对应的进程加入到加速调度队列中;当满足调度条件时,优先调度所述加速调度队列中的进程,以使调度的所述进程终止运行并释放占用的内存块;将释放的所述内存块分配给所述目标任务。

14、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收用于为目标任务申请内存的内存申请请求;所述内存申请请求中携带所述目标任务的第一内存服务质量优先级;当系统内存的剩余容量小于所述目标任务所需的内存空间时,查找不高于所述第一内存服务质量优先级的任务对应的进程;将所述任务对应的进程加入到加速调度队列中;当满足调度条件时,优先调度所述加速调度队列中的进程,以使调度的所述进程终止运行并释放占用的内存块;将释放的所述内存块分配给所述目标任务。

15、上述内存分配方法、装置、计算机设备和存储介质,通过接收用于为目标任务申请内存的内存申请请求;内存申请请求中携带目标任务的第一内存服务质量优先级;当系统内存的剩余容量小于目标任务所需的内存空间时,查找不高于第一内存服务质量优先级的任务对应的进程;将任务对应的进程加入到加速调度队列中;当满足调度条件时,优先调度加速调度队列中的进程,以使调度的进程终止运行并释放占用的内存块;将释放的内存块分配给目标任务。由于不同类型任务携带不同等级的内存服务质量优先级信息,故当系统内存不足时,云主机可以按内存服务质量优先级的高低顺序,选取回收不同级别的任务对应的进程所占用的内存,同时,通过将待回收的进程加入到加速调度队列中,以使得云主机能够优先调度加速调度队列中待回收内存的进程,即通过加速待回收进程被调度的流程,使得待回收进程能够在第一时间得到调度,以达到提升内存回收效率的目的,从而能够将回收的内存重新分配给目标任务,有效保障任务的内存服务质量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1