容器内存的优化方法及装置、存储介质、电子装置制造方法及图纸

技术编号:37704510 阅读:13 留言:0更新日期:2023-06-01 23:52
本发明专利技术提供了一种容器内存的优化方法及装置、存储介质、电子装置,所述方法包括:监测操作系统中目标容器的内存状态,其中,所述操作系统是所述目标容器的宿主系统;根据所述内存状态触发生成所述目标容器的内存释放指令;响应所述内存释放指令,释放所述目标容器的占用内存。本方案解决了相关技术在宿主系统中优化内存时容器内存隔离的技术问题,提高了内存管理的灵活性和宿主系统的稳定性。管理的灵活性和宿主系统的稳定性。管理的灵活性和宿主系统的稳定性。

【技术实现步骤摘要】
容器内存的优化方法及装置、存储介质、电子装置


[0001]本专利技术涉及计算机
,具体而言,涉及一种容器内存的优化方法及装置、存储介质、电子装置。

技术介绍

[0002]相关技术中,随着云游戏、云手机等云应用领域的发展,在Android宿主系统中使用容器化管理实现更高的资源使用效率已经逐渐成为新的技术方向。但Android系统本身并非为容器化设计,其中许多系统服务并未对容器化方案做支持,导致在多容器环境下运行出现错误。Android系统的低内存管理服务(low memory killer daemon,lmkd)就是其中之一。
[0003]相关技术中的lmkd不支持容器隔离。宿主系统(如Android系统)本身使用lmkd系统服务进行低内存状态下的优化工作,主要包括按照一定规则删除进程释放可用内存。lmkd在设计时仅针对整个宿主Android系统进行低内存检测与优化,无法适应多容器系统环境。lmkd删除进程的算法功能单一,lmkd进行低内存检测并进行优化时,会按照优先级遍历ActivityManagerService(活动管理器服务)中维护的进程列表,优先删除(终止)低优先级的进程来释放内存,这种方式相对不灵活。实际的使用环境下,经常需要对某些应用进程或系统进程进行保活或适当调整优先级。
[0004]针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。

技术实现思路

[0005]本专利技术实施例提供了一种容器内存的优化方法及装置、存储介质、电子装置。
[0006]根据本专利技术的一个实施例,提供了一种容器内存的优化方法,包括:监测操作系统中目标容器的内存状态,其中,所述操作系统是所述目标容器的宿主系统;根据所述内存状态触发生成所述目标容器的内存释放指令;响应所述内存释放指令,释放所述目标容器的占用内存。
[0007]可选的,监测操作系统中目标容器的内存状态包括:查找所述目标容器所在的目标控制组;调用所述目标控制组的vmpressure函数监听所述目标控制组中的vmpressure事件,其中,所述vmpressure事件用于指示所述目标控制组的内存回收状态。
[0008]可选的,监测操作系统中目标容器的内存状态包括:查找所述目标容器所在的目标控制组;调用所述目标控制组的压力失速信息psi函数监听所述目标控制组中的psi事件,其中,所述psi事件用于指示所述目标控制组的内存申请状态。
[0009]可选的,查找所述目标容器所在的目标控制组包括:读取所述目标容器的命名空间;查找与所述命名空间匹配的目标控制组。
[0010]可选的,释放所述目标容器的占用内存包括:判断低内存管理lmkd进程是否运行在所述目标容器的容器系统中;若lmkd进程运行在所述容器系统中,遍历所述容器系统的proc目录中的所有进程,对每个进程执行以下步骤,直到proc目录中的所有进程遍历完成:
判断当前的第一进程的优先级是否低于所述lmkd进程的释放优先级阈值;若第一进程的优先级低于释放优先级阈值,在所述容器系统中删除所述第一进程。
[0011]可选的,释放所述目标容器的占用内存包括:判断lmkd进程是否运行在所述目标容器的容器系统中;若lmkd进程运行在所述容器系统中,遍历所述容器系统中的所有进程,对每个进程执行以下步骤,直到所有进程遍历完成:判断当前的第二进程是否在所述目标容器的偏好应用集合中;若待删除的第二进程在所述目标容器的偏好应用表中,从所述偏好应用表的配置文件中读取所述第二进程的存活优先级;判断所述存活优先级是否低于所述lmkd进程的释放优先级阈值;若所述存活优先级低于所述释放优先级阈值,删除所述第二进程。
[0012]可选的,在从所述偏好应用表的配置文件中读取所述第二进程的存活优先级之前,所述方法还包括:基于用户指令配置所述第二进程的进程标识和存活优先级,并采用所述存活优先级覆盖所述第二进程的系统默认优先级;以所述第二进程的进程标识为键,所述存活优先级为值,生成所述第二进程的键值对;将所述键值对添加至所述配置文件。
[0013]根据本专利技术的另一个实施例,提供了一种容器内存的优化装置,包括:监测模块,用于监测操作系统中目标容器的内存状态,其中,所述操作系统是所述目标容器的宿主系统;生成模块,用于根据所述内存状态触发生成所述目标容器的内存释放指令;释放模块,用于响应所述内存释放指令,释放所述目标容器的占用内存。
[0014]可选的,所述监测模块包括:查找单元,用于查找所述目标容器所在的目标控制组;第一调用单元,用于调用所述目标控制组的vmpressure函数监听所述目标控制组中的vmpressure事件,其中,所述vmpressure事件用于指示所述目标控制组的内存回收状态。
[0015]可选的,所述监测模块包括:查找单元,用于查找所述目标容器所在的目标控制组;第二调用单元,用于调用所述目标控制组的压力失速信息psi函数监听所述目标控制组中的psi事件,其中,所述psi事件用于指示所述目标控制组的内存申请状态。
[0016]可选的,所述查找单元包括:读取子单元,用于读取所述目标容器的命名空间;查找子单元,用于查找与所述命名空间匹配的目标控制组。
[0017]可选的,所述释放模块包括:判断单元,用于判断低内存管理lmkd进程是否运行在所述目标容器的容器系统中;第一遍历单元,用于若lmkd进程运行在所述容器系统中,遍历所述容器系统的proc目录中的所有进程,对每个进程执行以下步骤,直到proc目录中的所有进程遍历完成:判断当前的第一进程的优先级是否低于所述lmkd进程的释放优先级阈值;若第一进程的优先级低于释放优先级阈值,在所述容器系统中删除所述第一进程。
[0018]可选的,所述释放模块包括:判断单元,用于判断lmkd进程是否运行在所述目标容器的容器系统中;第二遍历单元,用于若lmkd进程运行在所述容器系统中,遍历所述容器系统中的所有进程,对每个进程执行以下步骤,直到所有进程遍历完成:判断当前的第二进程是否在所述目标容器的偏好应用集合中;若待删除的第二进程在所述目标容器的偏好应用表中,从所述偏好应用表的配置文件中读取所述第二进程的存活优先级;判断所述存活优先级是否低于所述lmkd进程的释放优先级阈值;若所述存活优先级低于所述释放优先级阈值,删除所述第二进程。
[0019]可选的,所述释放模块还包括:配置单元,用于在所述第二遍历单元从所述偏好应用表的配置文件中读取所述第二进程的存活优先级之前,基于用户指令配置所述第二进程
的进程标识和存活优先级,并采用所述存活优先级覆盖所述第二进程的系统默认优先级;生成单元,用于以所述第二进程的进程标识为键,所述存活优先级为值,生成所述第二进程的键值对;添加单元,用于将所述键值对添加至所述配置文件。
[0020]根据本专利技术的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0021]根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器内存的优化方法,其特征在于,包括:监测操作系统中目标容器的内存状态,其中,所述操作系统是所述目标容器的宿主系统;根据所述内存状态触发生成所述目标容器的内存释放指令;响应所述内存释放指令,释放所述目标容器的占用内存。2.根据权利要求1所述的方法,其特征在于,监测操作系统中目标容器的内存状态包括:查找所述目标容器所在的目标控制组;调用所述目标控制组的vmpressure函数监听所述目标控制组中的vmpressure事件,其中,所述vmpressure事件用于指示所述目标控制组的内存回收状态。3.根据权利要求1所述的方法,其特征在于,监测操作系统中目标容器的内存状态包括:查找所述目标容器所在的目标控制组;调用所述目标控制组的压力失速信息psi函数监听所述目标控制组中的psi事件,其中,所述psi事件用于指示所述目标控制组的内存申请状态。4.根据权利要求2或3所述的方法,其特征在于,查找所述目标容器所在的目标控制组包括:读取所述目标容器的命名空间;查找与所述命名空间匹配的目标控制组。5.根据权利要求1所述的方法,其特征在于,释放所述目标容器的占用内存包括:判断低内存管理lmkd进程是否运行在所述目标容器的容器系统中;若lmkd进程运行在所述容器系统中,遍历所述容器系统的proc目录中的所有进程,对每个进程执行以下步骤,直到proc目录中的所有进程遍历完成:判断当前的第一进程的优先级是否低于所述lmkd进程的释放优先级阈值;若第一进程的优先级低于释放优先级阈值,在所述容器系统中删除所述第一进程。6.根据权利要求1所述的方法,其特征在于,释放所述目标容器的...

【专利技术属性】
技术研发人员:王思远
申请(专利权)人:安徽海马云科技股份有限公司
类型:发明
国别省市:

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

1