一种内存数据迁移方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38748140 阅读:12 留言:0更新日期:2023-09-08 23:29
本发明专利技术提供一种内存数据迁移方法、装置、电子设备及存储介质,涉及分层内存技术领域,方法应用于分层内存系统,分层内存系统包含多个内存节点,各内存节点对应不同的层级,方法包括:确定待迁移至目标内存节点的目标内存页;确定目标内存节点中的空闲页,并向空闲页迁移目标内存页;当检测到目标内存节点中剩余的空闲页数量小于预设阈值时,持续将目标内存节点中的非活跃内存页迁移至层级低于目标内存节点的其他内存节点,直至确定空闲页数量不小于预设阈值;可在确定目标内存节点即将写满时,主动回收该内存节点中的存储空间,避免目标内存节点写满,从而可解决由于目标内存节点已被写满而无法向该内存节点迁移内存页的技术问题。术问题。术问题。

【技术实现步骤摘要】
一种内存数据迁移方法、装置、电子设备及存储介质


[0001]本专利技术涉及分层内存
,特别涉及一种内存数据迁移方法、装置、电子设备及存储介质。

技术介绍

[0002]内存分层技术是一种新兴的内存技术。该技术允许电子设备中设置分层内存系统,该系统中包含多个内存节点,且这些内存节点对应不同的层级;同时该技术还使用非统一内存访问框架(NUMA,Non Uniform Memory Access)来统一管理这些内存节点,以融合各类内存设备的优势。相关技术中,为确保应用程序能够高性能运行,通常会将该程序所需的内存页迁移至性能较好的目标内存节点上,然而在目标内存节点已写满的情况下,内存页的迁移将发生失败,进而影响应用程序的高效读取。

技术实现思路

[0003]本专利技术的目的是提供一种内存数据迁移方法、装置、电子设备及存储介质,可在确定目标内存节点即将被写满时,主动回收该内存节点中的存储空间,从而可避免目标内存节点被写满,进而可解决因目标内存节点被写满所导致的无法迁移内存页的问题。
[0004]为解决上述技术问题,本专利技术提供一种内存数据迁移方法,应用于分层内存系统,所述分层内存系统包含多个内存节点,各所述内存节点对应不同的层级,所述方法包括:确定待迁移至目标内存节点的目标内存页;确定所述目标内存节点中的空闲页,并向所述空闲页迁移所述目标内存页;当检测到所述目标内存节点中剩余的空闲页数量小于预设阈值时,持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,直至确定所述空闲页数量不小于所述预设阈值。
[0005]可选地,所述持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,包括:在所述其他内存节点中确定本地访问速度最慢的第一内存节点和远程访问速度最慢的第二内存节点;持续将所述目标内存节点中的非活跃内存页迁移至所述第一内存节点或所述第二内存节点。
[0006]可选地,所述持续将所述目标内存节点中的非活跃内存页迁移至所述第一内存节点或所述第二内存节点,包括:确定当前待迁移的目标非活跃内存页,并判断所述第二内存节点是否被写满;若否,则将所述目标非活跃内存页迁移至所述第二内存节点;若是,则判断所述第一内存节点是否被写满;若未被写满,则将所述目标非活跃内存页迁移至所述第一内存节点;若已被写满,则进入所述判断所述第二内存节点是否被写满的步骤。
[0007]可选地,所述将所述目标内存节点中的非活跃内存页迁移至所述第二内存节点,包括:基于超路径互联协议将所述目标内存节点中的非活跃内存页迁移至所述第二内存节点。
[0008]可选地,所述将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,包括:获取内存页的不活跃程度与内存节点的层级间的预设对应关系;根据所述预设对应关系及所述非活跃内存页的不活跃程度,将所述非活跃内存页迁移至对应层级的其他内存节点。
[0009]可选地,所述持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,包括:将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页;将所述非活跃内存页迁移至所述其他内存节点,并更新所述空闲页数量;当确定更新后的空闲页数量小于所述预设阈值时,进入所述将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页的步骤。
[0010]可选地,所述将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页,包括:利用非活动最近最少使用链表将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页。
[0011]可选地,所述利用非活动最近最少使用链表将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页,包括:当确定非活动文件页最近最少使用链表不为空时,将位于所述非活动文件页最近最少使用链表尾部的内存页设置为所述非活跃内存页;当确定非活动文件页最近最少使用链表为空时,将非活动匿名页最近最少使用链表尾部的内存页设置为所述非活跃内存页。
[0012]可选地,在确定待迁移至目标内存节点的目标内存页之前,还包括:根据应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的关联关系,设置各个所述内存节点对应的层级。
[0013]可选地,所述根据应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的关联关系,设置各个所述内存节点对应的层级,包括:根据所述应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的挂载关系,设置各个所述内存节点对应的层级。
[0014]可选地,所述根据应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的关联关系,设置各个所述内存节点对应的层级,包括:根据所述应用程序线程所在的目标中央处理器以及所述目标中央处理器读写各个所述内存节点的速度,设置各个所述内存节点对应的层级。
[0015]可选地,在设置各个所述内存节点对应的层级之后,还包括:将层级最高的内存节点设置为所述目标内存节点。
[0016]可选地,所述确定待迁移至目标内存节点的目标内存页,包括:
当确定所述应用程序线程请求访问的内存页并未保存于所述目标内存节点时,将所述应用程序线程请求访问的内存页设置为所述目标内存页。
[0017]可选地,在向所述空闲页迁移所述目标内存页之后,还包括:向所述应用程序线程返回所述目标内存页中的数据。
[0018]可选地,所述目标内存节点的存储空间包含普通空间和预留空间,所述普通空间由自动非统一内存访问框架维护,所述确定所述目标内存节点中的空闲页,并向所述空闲页迁移所述目标内存页,包括:利用所述自动非统一内存访问框架向所述普通空间迁移所述目标内存页,并判断所述自动非统一内存访问框架是否输出页面故障信息;若是,则确定所述预留空间中的空闲页,并向所述预留空间中的空闲页迁移所述目标内存页;相应的,所述当检测到所述目标内存节点中剩余的空闲页数量小于预设阈值时,持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,直至确定所述空闲页数量不小于所述预设阈值,包括:当检测到所述预留空间中剩余的空闲页数量小于预设阈值时,持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,并将回收出的空闲页补充至所述预留空间,直至确定所述预留空间中的空闲页数量不小于所述预设阈值。
[0019]可选地,所述向所述预留空间中的空闲页迁移所述目标内存页,包括:根据所述页面故障信息确定所述目标内存页所在的位置;根据所述位置将所述目标内存页迁移至所述预留空间中的空闲页。
[0020]可选地,所述确定所述预留空间中的空闲页,并向所述预留空间中的空闲页迁移所述目标内存页,包括:利用第一预设线程确定所述预留空间中的空闲页,并向所述预留空间中的空闲页迁移所述目标内存页;相应的,所述持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,并将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存数据迁移方法,其特征在于,应用于分层内存系统,所述分层内存系统包含多个内存节点,各所述内存节点对应不同的层级,所述方法包括:确定待迁移至目标内存节点的目标内存页;确定所述目标内存节点中的空闲页,并向所述空闲页迁移所述目标内存页;当检测到所述目标内存节点中剩余的空闲页数量小于预设阈值时,持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,直至确定所述空闲页数量不小于所述预设阈值。2.根据权利要求1所述的内存数据迁移方法,其特征在于,所述持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,包括:在所述其他内存节点中确定本地访问速度最慢的第一内存节点和远程访问速度最慢的第二内存节点;持续将所述目标内存节点中的非活跃内存页迁移至所述第一内存节点或所述第二内存节点。3.根据权利要求2所述的内存数据迁移方法,其特征在于,所述持续将所述目标内存节点中的非活跃内存页迁移至所述第一内存节点或所述第二内存节点,包括:确定当前待迁移的目标非活跃内存页,并判断所述第二内存节点是否被写满;若否,则将所述目标非活跃内存页迁移至所述第二内存节点;若是,则判断所述第一内存节点是否被写满;若未被写满,则将所述目标非活跃内存页迁移至所述第一内存节点;若已被写满,则进入所述判断所述第二内存节点是否被写满的步骤。4.根据权利要求2所述的内存数据迁移方法,其特征在于,所述将所述目标内存节点中的非活跃内存页迁移至所述第二内存节点,包括:基于超路径互联协议将所述目标内存节点中的非活跃内存页迁移至所述第二内存节点。5.根据权利要求1所述的内存数据迁移方法,其特征在于,所述将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,包括:获取内存页的不活跃程度与内存节点的层级间的预设对应关系;根据所述预设对应关系及所述非活跃内存页的不活跃程度,将所述非活跃内存页迁移至对应层级的其他内存节点。6.根据权利要求1所述的内存数据迁移方法,其特征在于,所述持续将所述目标内存节点中的非活跃内存页迁移至层级低于所述目标内存节点的其他内存节点,包括:将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页;将所述非活跃内存页迁移至所述其他内存节点,并更新所述空闲页数量;当确定更新后的空闲页数量小于所述预设阈值时,进入所述将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页的步骤。7.根据权利要求6所述的内存数据迁移方法,其特征在于,所述将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页,包括:利用非活动最近最少使用链表将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页。
8.根据权利要求7所述的内存数据迁移方法,其特征在于,所述利用非活动最近最少使用链表将最近预设时间段内访问量最小的内存页设置为所述非活跃内存页,包括:当确定非活动文件页最近最少使用链表不为空时,将位于所述非活动文件页最近最少使用链表尾部的内存页设置为所述非活跃内存页;当确定非活动文件页最近最少使用链表为空时,将非活动匿名页最近最少使用链表尾部的内存页设置为所述非活跃内存页。9.根据权利要求1所述的内存数据迁移方法,其特征在于,在确定待迁移至目标内存节点的目标内存页之前,还包括:根据应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的关联关系,设置各个所述内存节点对应的层级。10.根据权利要求9所述的内存数据迁移方法,其特征在于,所述根据应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的关联关系,设置各个所述内存节点对应的层级,包括:根据所述应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的挂载关系,设置各个所述内存节点对应的层级。11.根据权利要求9所述的内存数据迁移方法,其特征在于,所述根据应用程序线程所在的目标中央处理器以及所述目标中央处理器与各个所述内存节点间的关联关系,设置各个所述内存节点对应的层级,包括:...

【专利技术属性】
技术研发人员:赵雅倩曹芳郭振华王丽高开
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1