System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种内存管理方法、装置及电子设备。
技术介绍
1、容器集群管理系统(kubernetes,k8s)是一种基于容器(container)的集群管理平台,该k8s所管理的集群中部署有多个计算节点(node)。在在线业务和离线业务混合部署场景中,对于k8s所管理的集群中的node来讲,内存管理是个非常关键的挑战。
2、在混合部署场景下,低优离线container往往运行着资源消耗性任务,可能大量申请内存,使得node上的内存紧张。当node的内存紧张时,业务性能会受到影响。比如,在node的内存紧张时,出现服务时延过高或者内存溢出(out of memory,oom)的现象。
3、当前,可通过内存回收来缓解node上的内存。然而,内存回收并不感知业务的优先级,无法对内存进行合理分配,使得node上的高优在线container进入直接内存回收的慢速路径,从而干扰到在线业务的内存资源质量。并且,当container的内存使用量达到内存使用上限时,会触发内存控制组(memory control group,memcg)直接内存回收,造成k8s内存分配的延迟,从而导致业务性能受到抖动。
技术实现思路
1、本申请提供了一种内存管理方法、装置及电子设备,用以实现内存的合理分配,并避免触发全局直接内存回收,降低业务性能受到影响的效果。具体实现方案如下:
2、第一方面,本申请提供了一种内存管理方法,所述方法包括:
3、基于目标节点
4、基于所述内存压力监测指标,确定所述目标node对应的异常;
5、根据所述异常对应的内存缓解措施,缓解所述目标node的内存。
6、通过上述申请实施例,根据目标node的内存信息构建的内存压力监测指标,确定目标node对应的异常,从而针对不同的异常,采取不同的内存缓解措施,以缓解目标node的内存,解决了内存无法进行合理分配的问题,避免了在目标node的内存紧张时,直接释放目标node中的重要容器组(pod)的内存,从而避免了在线业务的内存资源质量受到干扰的问题;同时避免了触发全局直接内存回收,降低了全局直接内存回收对业务性能的影响。
7、在一种可能的实施方式中,所述内存压力监测指标包括内存回收速率、常驻内存集rss、内存资源满足度、剩余内存水位,则所述基于目标节点node的内存信息,构建内存压力监测指标,包括:
8、采集所述目标node的内存信息;
9、从所述内存信息中,读取所述内存回收速率、所述剩余内存水位、回收内存的供应量、内存申请量以及所述目标node中多个容器组pod各自对应的子rss;
10、根据所述回收内存的供应量与所述内存申请量,确定所述内存资源满足度,并确定多个子rss的平均值为所述rss。
11、在一种可能的实施方式中,所述异常包括非剩余内存异常与剩余内存异常,则所述基于所述内存压力监测指标,确定所述目标node对应的异常,包括:
12、判断所述剩余内存水位是否小于阈值水位;
13、若否,确定所述目标node对应的所述异常为所述非剩余内存异常;
14、若是,确定所述异常为所述剩余内存异常。
15、在一种可能的实施方式中,所述内存缓解措施包含所述剩余内存异常对应的第一内存缓解措施,所述第一内存缓解措施具体为:
16、针对所述目标node设置污点;其中,所述污点指示,禁止调度所述目标node中的pod。
17、在一种可能的实施方式中,所述基于所述内存压力监测指标,确定所述目标node对应的异常,包括:
18、基于所述内存压力监测指标,计算异常指标;
19、基于所述异常指标与异常预设阈值的比较结果,确定所述目标node对应的所述异常。
20、在一种可能的实施方式中,所述异常预设阈值包括第一异常预设阈值、第二异常预设阈值,所述异常包括低级异常、中级异常与高级异常,则所述确定所述目标node对应的所述异常,包括:
21、若所述比较结果为所述异常指标小于所述第一异常预设阈值,则确定所述目标node对应的所述异常为所述低级异常;
22、若所述比较结果为所述异常指标不小于所述第一异常预设阈值且不大于所述第二异常预设阈值,则确定所述异常为所述中级异常;
23、若所述比较结果为所述异常指标大于所述第二异常预设阈值,则确定所述异常为所述高级异常。
24、在一种可能的实施方式中,所述内存缓解措施包括所述低级异常对应的第二内存缓解措施,所述第二内存缓解措施具体为:
25、针对第一业务,配置内存控制组memcg异步内存回收水位,并针对第二业务,配置内存回收触发阈值;其中,所述第一业务为页缓存使用量大于页缓存预设阈值的业务,所述第二业务为受到直接内存回收影响的业务。
26、在一种可能的实施方式中,所述内存缓解措施包括所述中级异常对应的第三内存缓解措施,所述第三内存管理措施具体为:
27、释放目标pod的缓存;其中,所述目标pod为缓存使用量大于预设缓存使用量且类型为回收核的pod。
28、在一种可能的实施方式中,所述内存缓解措施包括所述高级异常对应的第四内存缓解措施,所述第四内存管理措施具体为:
29、基于pod类型,确定第一顺序;其中,所述pod类型包括回收核、共享核与独占核;
30、基于pod优先级,确定第二顺序;其中,所述pod优先级基于业务重要性确定的;
31、基于pod内存使用量,确定第三顺序;其中,所述第一顺序、所述第二顺序与所述第三顺序从高到低的顺序优先级为所述第一顺序、所述第二顺序、所述第三顺序;
32、基于所述第一顺序、所述第二顺序与所述第三顺序,按照所述顺序优先级,确定所述目标node中的多个pod的驱逐顺序,并基于所述驱逐顺序,对所述目标node中的多个pod依次进行驱逐。
33、第二方面,本申请还提供了一种内存管理装置,所述装置包括:
34、构建模块,用于基于目标节点node的内存信息,构建内存压力监测指标;
35、确定模块,用于基于所述内存压力监测指标,确定所述目标node对应的异常;
36、处理模块,用于根据所述异常对应的内存缓解措施,缓解所述目标node的内存。
37、在一种可能的实施方式中,所述内存压力监测指标包括内存回收速率、常驻内存集rss、内存资源满足度、剩余内存水位,则所述构建模块,具体用于采集所述目标node的内存信息;从所述内存信息中,读取所述内存回收速率、所述剩余内存水位、回收内存的供应量、内存申请量以及所述目标node中多个容器组pod各自对应的子rss;根据所述回收内存的供应量与所述内存申请量,确定所述内存资源满足度,并确定多个子rss的平均值为所本文档来自技高网...
【技术保护点】
1.一种内存管理方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述内存压力监测指标包括内存回收速率、常驻内存集RSS、内存资源满足度、剩余内存水位,则所述基于目标节点Node的内存信息,构建内存压力监测指标,包括:
3.如权利要求2所述的方法,其特征在于,所述异常包括非剩余内存异常与剩余内存异常,则所述基于所述内存压力监测指标,确定所述目标Node对应的异常,包括:
4.如权利要求3所述的方法,其特征在于,所述内存缓解措施包含所述剩余内存异常对应的第一内存缓解措施,所述第一内存缓解措施具体为:
5.如权利要求1所述的方法,其特征在于,所述基于所述内存压力监测指标,确定所述目标Node对应的异常,包括:
6.如权利要求5所述的方法,其特征在于,所述异常预设阈值包括第一异常预设阈值、第二异常预设阈值,所述异常包括低级异常、中级异常与高级异常,则所述确定所述目标Node对应的所述异常,包括:
7.如权利要求6所述的方法,其特征在于,所述内存缓解措施包括所述低级异常对应的第二内存缓解措施,所述第二
8.如权利要求6所述的方法,其特征在于,所述内存缓解措施包括所述中级异常对应的第三内存缓解措施,所述第三内存管理措施具体为:
9.如权利要求6所述的方法,其特征在于,所述内存缓解措施包括所述高级异常对应的第四内存缓解措施,所述第四内存管理措施具体为:
10.一种内存管理装置,其特征在于,包括:
11.一种电子设备,其特征在于,包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的方法步骤。
...【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述内存压力监测指标包括内存回收速率、常驻内存集rss、内存资源满足度、剩余内存水位,则所述基于目标节点node的内存信息,构建内存压力监测指标,包括:
3.如权利要求2所述的方法,其特征在于,所述异常包括非剩余内存异常与剩余内存异常,则所述基于所述内存压力监测指标,确定所述目标node对应的异常,包括:
4.如权利要求3所述的方法,其特征在于,所述内存缓解措施包含所述剩余内存异常对应的第一内存缓解措施,所述第一内存缓解措施具体为:
5.如权利要求1所述的方法,其特征在于,所述基于所述内存压力监测指标,确定所述目标node对应的异常,包括:
6.如权利要求5所述的方法,其特征在于,所述异常预设阈值包括第一异常预设阈值、第二异常预设阈...
【专利技术属性】
技术研发人员:张浩,任俊龙,王芳,白雪珂,王晶,解军伟,王志刚,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。