基于内存健康度的大数据作业调度方法、系统及存储介质技术方案

技术编号:39325616 阅读:13 留言:0更新日期:2023-11-12 16:04
本发明专利技术涉及大数据作业处理技术领域,具体涉及一种基于内存健康度的大数据作业调度方法、系统及存储介质,所述方法包括:作业节点接收内存的健康度等级划分设定,接收作业调度处置方案;作业节点各自周期性执行以下步骤:统计可用内存量,计算获得内存碎片指数;统计进程停顿事件,计算获得内存竞争指数;根据可用内存量、内存碎片指数及内存竞争指数计算获得内存健康度;获得当前周期内的内存的健康度等级;若健康度等级发生变化,则将变化后的健康度等级发送至作业管理节点,执行对应的作业调度处置方案。本发明专利技术的有益技术效果包括:通过可用内存量、内存碎片指数及内存竞争指数多个维度综合计算获得内存健康度,更为合理的调度大数据作业。大数据作业。大数据作业。

【技术实现步骤摘要】
基于内存健康度的大数据作业调度方法、系统及存储介质


[0001]本专利技术涉及大数据作业处理
,具体涉及一种基于内存健康度的大数据作业调度方法、系统及存储介质。

技术介绍

[0002]内存作为计算机系统的一种资源,程序运行时必不可少。当前主流的系统集群管理软件,在决定是否调度作业到集群内的某台机器上运行时,内存会作为一个重要的考量因素。技术方案整体如:监测每台机器的内存剩余量,预估作业需要消耗的内存量,以此为基准,结合经验算法,再决定是否调度作业到具体的机器上。
[0003]这种方案具有以下缺陷:
[0004]1、内存剩余量的指标单一,没有考虑内存竞争强度、内存碎片指数等因素。
[0005]2、作业调度系统缺乏操作系统内存模块的互动,在内存内部状况发生恶化时,无法及时感知并做出决策。
[0006]可能会出现某些机器碎片严重,内存竞争激烈的情况下,仍将新作业调度到该机器上,导致系统运行状态继续恶化,出现系统挂死、宕机等问题。因此,需要研究更为可靠的对内存进行考量的大数据调度方案。
[0007]如中国专利CN105740068A,公开日2016年7月6日,公开了一种面向大数据平台基于内存数据局部性的调度方法及系统,涉及大数据处理分布式计算任务调度领域,该方法包括周期性获取数据节点内存中缓存的数据块,并周期性向存储管理节点汇报数据节点的内存数据块信息;获取用户提交的作业,计算节点对作业进行分片,当计算节点填写作业分片信息时,将内存数据块信息写入作业分片信息中;计算节点根据作业分片信息创建待执行任务,为待执行任务进行资源申请请求,计算节点根据资源申请请求,将资源节点分配给待执行任务。其技术方案能够加快整体作业执行速度,对于降低作业执行时间具有重要的实际意义。但其技术方案仍然不能解决内存空闲指标与实际情况不符,导致实际作业的执行延误的问题。

技术实现思路

[0008]本专利技术所要解决的技术问题:目前大数据作业调度时,掌握作业节点内存状态不准确,导致作业存在调度不够合理的技术问题。提出了一种基于内存健康度的大数据作业调度方法、系统及存储介质,能够使大数据作业的调度更为合理,提高大数据作业的处理效率。
[0009]为解决上述技术问题,本专利技术采用如下技术方案:基于内存健康度的大数据作业调度方法,所述大数据作业由作业管理节点分发至作业节点执行,所述作业节点接收内存的健康度等级划分设定,接收与所述健康度等级对应的作业调度处置方案;
[0010]所述作业节点各自周期性执行以下步骤:
[0011]统计可用内存量,而后计算获得内存碎片指数;
[0012]统计进程停顿事件,根据所述进程停顿事件,计算获得内存竞争指数;
[0013]根据所述可用内存量、所述内存碎片指数及所述内存竞争指数计算获得内存健康度;
[0014]将当前内存健康度和设定的健康度等级划分比对,获得当前周期内的内存的健康度等级;
[0015]若健康度等级发生变化,则将变化后的健康度等级发送至作业管理节点,根据变化后的健康度等级执行对应的作业调度处置方案。
[0016]作为优选,统计可用内存量的方法包括:
[0017]遍历从LRU_BASE到NR_LRU_LISTS

1的所有LRU列表,获取每个LRU列表的页状态,存储到预先建立的pages数组中;
[0018]遍历系统中的每个内存管理区域zone,调用low_wmark_pages宏定义计算当前内存管理区域zone的低水位标记low_wmark_pages;
[0019]将计算得到的低水位标记low_wmark_pages的页面数量,加到预设的wmark_low变量中;
[0020]通过下式计算缓存页数量:
[0021]缓存页数量=pages[LRU_ACTIVE_FILE]+pages[LRU_INACTIVE_FILE]‑
wmark_low;
[0022]获取空闲页数量,通过下式计算可用内存量:
[0023]可用内存量=空闲页数量+缓存页数量。
[0024]作为优选,计算内存碎片指数的方法包括:
[0025]对系统中的每一个内存管理区域zone执行以下步骤:
[0026]依次枚举预设的内存块大小,进行内存的请求;
[0027]通过内存管理区域zone结构体中的free_area链表,获取对应大小的free内存块数量,进而统计出该内存管理区域下的总页面数和可以填充该大小内存块的连续空间个数;
[0028](内存页面数与内存块数的大小关系为:页面数=内存块数*内存块大小);
[0029]通过下式计算出每个内存管理区域zone的碎片指数index:碎片指数index=(总页面数

可填充页面数)/总页面数;
[0030]若录碎片指数index超出设定预警值,则将超出部分累加至总碎片指数;
[0031]通过下式计算出碎片指数:碎片指数=总碎片指数/内存管理区域zone数量。
[0032]执行时,跳过DMA和DMA32区域,依次枚举不同的的内存块大小,内存块大小推荐为2的i次方。
[0033]作为优选,计算内存竞争指数的方法包括:
[0034]通过系统暴露的vm_all_events函数接口,获取周期内系统中所有的内存事件,筛选出预设的关注事件;
[0035]根据每个关注事件的变换量和预先配置的权重因子计算出事件竞争指数,具体计算式为:
[0036]事件竞争指数=(关注事件当前值

关注事件原始值)*权重因子;
[0037]将所有关注事件的事件竞争指数进行累加,作为内存竞争指数。
[0038]作为优选,所述关注事件包括:ALLOCSTALL、PGSCAN_KSWAPD、PGSCAN_DIRECT、PAGEOUTRU、KSWAPD_LOW_WMARK_HIT_QUICKLY、KSWAPD_HIGH_WMARK_HIT_QUICKLY、COMPACTSTALL及COMPACTFAIL事件中的一种或多种。ALLOCSTALL事件,申请内存页面时触发直接回收,PGSCAN_KSWAPD事件,内存不足时,周期性扫描内存页面,将不再使用的内存页面回收,PGSCAN_DIRECT事件当系统内存不足时,内核主动通知相关线程进行内存回收操作,PAGEOUTRU事件当内存使用率超过一定阈值时,内核会启动pageout线程,用于回收一些未被使用的页面,KSWAPD_LOW_WMARK_HIT_QUICKLY事件,kswapd执行一次回收后,由于内存低于lowwmark,需要再次执行,KSWAPD_HIGH_WMARK_HIT_QUICKLY事件,kswapd执行一次回收后,由于内存低于highwmark,需要再次执行,COMPACTSTALL事件,申请内存页面触发内存规整合并,COMPACTFAIL事件,内存规整合并失败。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于内存健康度的大数据作业调度方法,所述大数据作业由作业管理节点分发至作业节点执行,其特征在于,所述作业节点接收内存的健康度等级划分设定,接收与所述健康度等级对应的作业调度处置方案;所述作业节点各自周期性执行以下步骤:统计可用内存量,而后计算获得内存碎片指数;统计进程停顿事件,根据所述进程停顿事件,计算获得内存竞争指数;根据所述可用内存量、所述内存碎片指数及所述内存竞争指数计算获得内存健康度;将当前内存健康度和设定的健康度等级划分比对,获得当前周期内的内存的健康度等级;若健康度等级发生变化,则将变化后的健康度等级发送至作业管理节点,根据变化后的健康度等级执行对应的作业调度处置方案。2.根据权利要求1所述的基于内存健康度的大数据作业调度方法,其特征在于,统计可用内存量的方法包括:遍历从LRU_BASE到NR_LRU_LISTS

1的所有LRU列表,获取每个LRU列表的页状态,存储到预先建立的pages数组中;遍历系统中的每个内存管理区域zone,计算当前内存管理区域zone的低水位标记low_wmark_pages;将计算得到的低水位标记low_wmark_pages的页面数量,加到预设的wmark_low变量中;通过下式计算缓存页数量:缓存页数量=pages[LRU_ACTIVE_FILE]+pages[LRU_INACTIVE_FILE]

wmark_low;获取空闲页数量,通过下式计算可用内存量:可用内存量=空闲页数量+缓存页数量。3.根据权利要求1所述的基于内存健康度的大数据作业调度方法,其特征在于,计算内存碎片指数的方法包括:对系统中的每一个内存管理区域zone执行以下步骤:依次枚举预设的内存块大小,进行内存的请求;通过内存管理区域zone结构体中的free_area链表,获取对应大小的free内存块数量,进而统计出该内存管理区域下的总页面数和可以填充该大小内存块的连续空间个数;通过下式计算出每个内存管理区域zone的碎片指数index:碎片指数index=(总页面数

可填充页面数)/总页面数;若录碎片指数index超出设定预警值,则将超出部分累加至总碎片指数;通过下式计算出碎片指数:碎片指数=总碎片指数/内存管理区域zone数量。4.根据权利要求1所述的基于内存健康度的大数据作业调度方法,其特征在于,计算内存竞争指数的方法包括:获取周期内系统中所有的内存事件,筛选出预设的关注事件;根据每个关注事件的变换量和预先配置的权重因子计算出事件竞争指数,具体计算式为:
事件竞争指数=(关...

【专利技术属性】
技术研发人员:王元良戴贤俊栗昆昆王鑫宇
申请(专利权)人:贝联珠贯科技浙江有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1