一种大内存池下的内存页面回收方法、装置及电子设备与流程
本技术涉及内存管理,尤其涉及一种大内存池下的内存页面回收方法、装置、电子设备及可读存储介质。
背景技术:
1、在计算机系统中,内存管理技术中,预先向操作系统申请一大块连续的内存区域,由应用程序自身负责该区域内内存块的分配与释放,从而减少频繁调用系统内存分配接口(如 malloc/free、new/delete)所带来的性能开销,多次分配释放会带来内存碎片化问题,而由于物理内存页面存在部分活跃数据(被使用的数据),即使该内存页面存在大量空闲区域(空洞),也无法将整个页面回收给操作系统,导致资源利用率低。
技术实现思路
1、有鉴于此,本技术实施例提供一种大内存池下的内存页面回收方法、装置、电子设备及可读存储介质,便于提高内存利用率。
2、第一方面,本技术实施例提供一种大内存池下的内存页面回收方法,应用于容量2m及以上的大内存池内存管理场景,所述方法包括:接收应用程序发起的内存分配请求,仅为所述应用程序分配虚拟内存空间并即刻返回虚拟内存地址;通过预设独立异步线程,对已完成分配的虚拟内存区间,异步执行物理内存分配及页表映射构建;实时遍历大内存池已分配虚拟内存与物理内存映射关系,主动预检测内存页面空洞区域,标记离散、非对齐的无效内存空洞页面,生成待回收页面列表;获取携带有待回收虚拟地址的内存页面回收指令;依据所述待回收虚拟地址,在大内存池中定位产生内存空洞的第一目标内存页面;判断所述第一目标内存页面内部是否存在被区别于所述待回收虚拟地址的其他虚拟地址占用的有效页面区域;若存在所述有效页面区域,将所述有效页面区域内的完整数据迁移至大内存池内其他空闲内存页面的空闲区域,并同步更新对应虚拟地址的页表映射关系;以系统标准物理页面尺寸为对齐基准,对所述第一目标内存页面进行对齐规整处理,整体回收规整后的第一目标内存页面,消除大内存池内部的内存空洞。
3、根据本技术实施例的一种具体实现方式,所述将所述有效页面区域内的完整数据迁移至大内存池内其他空闲内存页面的空闲区域,包括:获取所述第一目标内存页面中有效页面区域的实际存储容量;根据所述有效页面区域的存储容量,在大内存池的空闲内存页面中筛选匹配第二目标内存页面,其中,所述第二目标内存页面的空闲区域容量不小于所述有效页面区域的存储容量;将所述有效页面区域内的全部数据完整复刻至所述第二目标内存页面的空闲区域。
4、根据本技术实施例的一种具体实现方式,在筛选得到所述第二目标内存页面之后,所述方法还包括:建立所述其他虚拟地址与所述第二目标内存页面空闲区域对应物理地址之间的第二页表映射关系;采用所述第二页表映射覆盖替换原有的第一页表映射,完成内存映射关系的动态迭代更新。
5、根据本技术实施例的一种具体实现方式,所述通过预设独立异步线程,对已完成分配的虚拟内存区间,异步执行物理内存分配及页表映射构建,包括:异步线程持续轮询遍历大内存池中已分配虚拟内存、未绑定物理内存的虚拟内存区间,并依据业务优先级、内存访问热度、虚拟内存容量对各虚拟内存区间进行动态等级划分;按照高热度高优先级优先、大容量区间后置的调度规则,依次为各虚拟内存区间分配对应物理内存页面,并构建虚拟内存与物理内存的一一对应页表映射;实时动态更新各虚拟内存区间的优先级等级,适配系统业务负载动态变化。
6、根据本技术实施例的一种具体实现方式,所述通过预设独立异步线程,对已完成分配的虚拟内存区间,异步执行物理内存分配及页表映射构建,包括:若所述应用程序在对应物理内存映射完成前访问该虚拟内存区间,则触发硬件缺页异常并进入阻塞等待状态,通过分级阻塞等待机制执行差异化容错处理,待异步线程完成对应物理内存分配与页表映射构建后,解除阻塞并恢复应用程序的内存访问操作。
7、根据本技术实施例的一种具体实现方式,所述第一目标内存页面为大内存池中多个连续或离散的、存在内存空洞的物理页面;所述判断所述第一目标内存页面内部是否存在被区别于所述待回收虚拟地址的其他虚拟地址占用的有效页面区域,包括:逐一对多个所述第一目标内存页面进行全域检测,筛查出包含有效页面区域的目标回收页面;所述将所述有效页面区域内的完整数据迁移至大内存池内其他空闲内存页面的空闲区域,包括:对多个第一目标内存页面的有效页面数据进行批量整合迁移,统一存储至所述第二目标内存页面的空闲区域。
8、根据本技术实施例的一种具体实现方式,所述实时遍历大内存池已分配虚拟内存与物理内存映射关系,主动预检测内存页面空洞区域,标记离散、非对齐的无效内存空洞页面,生成待回收页面列表,包括:按照预设周期实时巡检大内存池的虚实映射的映射关系,比对虚拟内存分配区间与物理内存占用区间的匹配度,识别未被占用、局部释放的非对齐内存空洞;对检测到的内存空洞进行面积统计、离散度分级,优先标记高离散、大面积空洞作为预回收对象,生成动态待回收页面清单;在系统业务低负载时段,提前对标记空洞页面执行预处理规整。
9、根据本技术实施例的一种具体实现方式,所述以系统标准物理页面尺寸为对齐基准,对所述第一目标内存页面进行对齐规整处理,包括:依据系统预设的标准物理页面尺寸,对所述第一目标内存页面的非对齐空洞区域进行裁剪与统一规整,形成完整的标准物理页面;将规整后的完整标准物理页面回收至大内存池空闲内存队列,完成内存空洞与细碎碎片的清除。
10、第二方面,本技术实施例提供一种大内存池下的内存页面回收装置,应用于容量2m及以上的大内存池内存管理场景,所述装置包括:接收模块,用于接收应用程序发起的内存分配请求,仅为所述应用程序分配虚拟内存空间并即刻返回虚拟内存地址;通过预设独立异步线程,对已完成分配的虚拟内存区间,异步执行物理内存分配及页表映射构建;遍历模块,用于实时遍历大内存池已分配虚拟内存与物理内存映射关系,主动预检测内存页面空洞区域,标记离散、非对齐的无效内存空洞页面,生成待回收页面列表;获取模块,用于获取携带有待回收虚拟地址的内存页面回收指令;定位模块,用于依据所述待回收虚拟地址,在大内存池中定位产生内存空洞的第一目标内存页面;判断模块,用于判断所述第一目标内存页面内部是否存在被区别于所述待回收虚拟地址的其他虚拟地址占用的有效页面区域;迁移模块,用于若存在所述有效页面区域,将所述有效页面区域内的完整数据迁移至大内存池内其他空闲内存页面的空闲区域,并同步更新对应虚拟地址的页表映射关系;消除模块,用于以系统标准物理页面尺寸为对齐基准,对所述第一目标内存页面进行对齐规整处理,整体回收规整后的第一目标内存页面,消除大内存池内部的内存空洞。
11、根据本技术实施例的一种具体实现方式,所述迁移模块,具体用于:获取所述第一目标内存页面中有效页面区域的实际存储容量;根据所述有效页面区域的存储容量,在大内存池的空闲内存页面中筛选匹配第二目标内存页面,其中,所述第二目标内存页面的空闲区域容量不小于所述有效页面区域的存储容量;将所述有效页面区域内的全部数据完整复刻至所述第二目标内存页面的空闲区域。
12、根据本技术实施例的一种具体实现方式,所述装置还用于:在筛选得到所述第二目标内存页面之后,建立所述其他虚拟地址与所述第二目标内存页面空闲区域对应物理地址之间的第二页表映射关系;采用所述第二页表映射覆盖替换原有的第一页表映射,完成内存映射关系的动态迭代更新。
13、根据本技术实施例的一种具体实现方式,所述接收模块,具体用于通过异步线程持续轮询遍历大内存池中已分配虚拟内存、未绑定物理内存的虚拟内存区间,并依据业务优先级、内存访问热度、虚拟内存容量对各虚拟内存区间进行动态等级划分;按照高热度高优先级优先、大容量区间后置的调度规则,依次为各虚拟内存区间分配对应物理内存页面,并构建虚拟内存与物理内存的一一对应页表映射;实时动态更新各虚拟内存区间的优先级等级,适配系统业务负载动态变化。
14、根据本技术实施例的一种具体实现方式,所述接收模块,具体用于若所述应用程序在对应物理内存映射完成前访问该虚拟内存区间,则触发硬件缺页异常并进入阻塞等待状态,通过分级阻塞等待机制执行差异化容错处理,待异步线程完成对应物理内存分配与页表映射构建后,解除阻塞并恢复应用程序的内存访问操作。
15、根据本技术实施例的一种具体实现方式,所述第一目标内存页面为大内存池中多个连续或离散的、存在内存空洞的物理页面;所述判断模块具体用于逐一对多个所述第一目标内存页面进行全域检测,筛查出包含有效页面区域的目标回收页面;所述迁移模块具体用于对多个第一目标内存页面的有效页面数据进行批量整合迁移,统一存储至所述第二目标内存页面的空闲区域。
16、根据本技术实施例的一种具体实现方式,所述遍历模块,具体用于按照预设周期实时巡检大内存池的虚实映射的映射关系,比对虚拟内存分配区间与物理内存占用区间的匹配度,识别未被占用、局部释放的非对齐内存空洞;对检测到的内存空洞进行面积统计、离散度分级,优先标记高离散、大面积空洞作为预回收对象,生成动态待回收页面清单;在系统业务低负载时段,提前对标记空洞页面执行预处理规整。
17、根据本技术实施例的一种具体实现方式,所述消除模块,具体用于依据系统预设的标准物理页面尺寸,对所述第一目标内存页面的非对齐空洞区域进行裁剪与统一规整,形成完整的标准物理页面;将规整后的完整标准物理页面回收至大内存池空闲内存队列,完成内存空洞与细碎碎片的清除。
18、第三方面,本技术实施例提供一种电子设备,所述电子设备包括:处理器和存储器,其中,存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的大内存池下的内存页面回收方法。
19、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的大内存池下的内存页面回收方法。
20、本实施例的大内存池下的内存页面回收方法、装置、电子设备及可读存储介质,针对2m及以上大内存池场景,摒弃现有同步虚实内存绑定分配模式,通过虚拟内存优先分配、异步物理映射的机制,大幅降低应用程序内存申请响应时延,解决了现有异步内存分配调度僵化、内存碎片被动回收、碎片化累积严重的行业痛点,通过物理页对齐规整回收消除大内存池运行过程中产生的内存空洞与细碎碎片,有效解决了现有大内存池内存碎片量大、内存利用率低的问题,显著提升大内存池内存利用率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com