内存分配管理的方法和装置制造方法及图纸

技术编号:36223926 阅读:11 留言:0更新日期:2023-01-04 12:22
本发明专利技术公开了内存分配管理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:响应于虚拟机进程访问用户空间时产生缺页异常,为所述用户空间分配物理内存,获取所述物理内存的内存类型标识;在所述内存类型标识为预设标识的情况下,判断所述物理内存是否为空闲内存,以及在所述物理内存不为空闲内存的情况下对所述物理内存进行清零操作,以使所述物理内存成为空闲内存;其中,所述预设标识的物理内存的读带宽大于写带宽。该实施方式能够大幅提升基于读带宽大于写带宽类内存的虚拟机的创建以及启动速度。拟机的创建以及启动速度。拟机的创建以及启动速度。

【技术实现步骤摘要】
内存分配管理的方法和装置


[0001]本专利技术涉及计算机
,尤其涉及一种内存分配管理的方法和装置。

技术介绍

[0002]现有技术中内核在分配内存时,通常先进行页表映射以及内存分配,然后对所分配的内存进行清零操作。对于读带宽大于写带宽的内存,由于写带宽的限制,因此清零操作会占用大量时间,从而增加虚拟机的创建和启动时间。这种现象在大内存型虚拟机中尤为明显,即使增加进行页表映射以及内存分配的并发度,也难以有效提升虚拟机创建和启动的速度。

技术实现思路

[0003]有鉴于此,本专利技术实施例提供一种内存分配管理的方法和装置,通过设置内存类型标识,能够判断所分配的物理内存是否是读带宽大于写带宽的内存;通过在所分配的物理内存为预设标识内存的情况下进一步判断所分配的物理内存是否为空闲内存,以及在所分配的物理内存不为空闲内存的情况下对物理内存进行清零操作、在所分配的物理内存为空闲内存的情况下不进行清零操作,能够大幅提升基于读带宽大于写带宽类内存的虚拟机的创建以及启动速度。
[0004]为实现上述目的,根据本专利技术实施例的一个方面,提供了一种内存分配管理的方法,包括:
[0005]响应于虚拟机进程访问用户空间时产生缺页异常,为所述用户空间分配物理内存,获取所述物理内存的内存类型标识;
[0006]在所述内存类型标识为预设标识的情况下,判断所述物理内存是否为空闲内存,以及在所述物理内存不为空闲内存的情况下对所述物理内存进行清零操作,以使所述物理内存成为空闲内存;其中,所述预设标识的物理内存的读带宽大于写带宽。
[0007]可选地,所述方法还包括:在为所述用户空间分配物理内存之前,为物理内存节点设置内存类型字段,以及在内核驱动初始化阶段,根据所述物理内存的内存类型在所述内存类型字段写入所述内存类型标识。
[0008]可选地,所述方法还包括:在所述内存类型标识不为预设标识的情况下,对所述物理内存进行清零操作,以使所述物理内存成为空闲内存。
[0009]可选地,采用伙伴系统为所述用户空间分配物理内存。
[0010]可选地,所述虚拟机进程采用数据平面开发套件处理数据包。
[0011]根据本专利技术实施例的第二方面,提供一种内存分配管理的装置,包括:
[0012]内存分配模块,响应于虚拟机进程访问用户空间时产生缺页异常,为所述用户空间分配物理内存,获取所述物理内存的内存类型标识;
[0013]内存清零模块,在所述内存类型标识为预设标识的情况下,判断所述物理内存是否为空闲内存,以及在所述物理内存不为空闲内存的情况下对所述物理内存进行清零操
作,以使所述物理内存成为空闲内存;其中,所述预设标识的物理内存的读带宽大于写带宽。
[0014]可选地,所述装置还包括初始化模块,用于:在为所述用户空间分配物理内存之前,为物理内存节点设置内存类型字段,以及在内核驱动初始化阶段,根据所述物理内存的内存类型在所述内存类型字段写入所述内存类型标识。
[0015]可选地,所述内存清零模块还用于:在所述内存类型标识不为预设标识的情况下,对所述物理内存进行清零操作,以使所述物理内存成为空闲内存。
[0016]可选地,所述内存分配模块采用伙伴系统为所述用户空间分配物理内存。
[0017]可选地,所述虚拟机进程采用数据平面开发套件处理数据包。
[0018]根据本专利技术实施例的第三方面,提供一种内存分配管理的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例第一方面提供的方法。
[0019]根据本专利技术实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例第一方面提供的方法。
[0020]上述专利技术中的一个实施例具有如下优点或有益效果:通过设置内存类型标识,能够判断所分配的物理内存是否是读带宽大于写带宽的内存;通过在所分配的物理内存为预设标识内存的情况下进一步判断所分配的物理内存是否为空闲内存,以及在所分配的物理内存不为空闲内存的情况下对物理内存进行清零操作、在所分配的物理内存为空闲内存的情况下不进行清零操作,能够大幅提升基于读带宽大于写带宽类内存的虚拟机的创建以及启动速度。
[0021]上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
[0022]附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:
[0023]图1是本专利技术实施例的内存分配管理的方法的主要流程的示意图;
[0024]图2是本专利技术可选实施例中物理内存注册的流程示意图;
[0025]图3是现有技术中创建和启动QEMU虚拟机的原理示意图;
[0026]图4是本专利技术一些实施例中创建和启动QEMU虚拟机的原理示意图;
[0027]图5是本专利技术实施例的内存分配管理的装置的主要模块的示意图;
[0028]图6是本专利技术实施例可以应用于其中的示例性系统架构图;
[0029]图7是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
[0030]以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0031]通常,CPU(Central Processing Unit/Processor,中央处理器)通过地址总线可以访问连接在地址总线上的所有外设,包括物理内存、IO(Input/Output,输入/输出)设备等等,但从CPU发出的访问地址并非是这些外设在地址总线上的物理地址,而是一个虚拟地址,由MMU(Memory Management Unit,内存管理单元)将虚拟地址转换成物理地址再从地址总线上发出,MMU上这种虚拟地址和物理地址的转换关系是需要创建的,创建上述转换关系的过程即页表映射的过程。当没有创建一个虚拟地址到物理地址的映射,或者对应物理内存中不能写入的时候,MMU将会通知CPU产生缺页异常。通过为虚拟地址分配物理内存,可以解决缺页异常问题。创建页表映射,并将相应物理内存映射给虚拟地址空间之后,为了保证系统运行稳定性,通常会对所分配的物理内存进行清理操作,清零操是将相应地址处的内存全部写入0的操作。通过清理操作可以将对应物理内存转换为空闲内存,从而可以进行写入操作。
[0032]对于读带宽大于写带宽的内存,由于写带宽的限制,清零操作会占用大量时间,从而增加虚拟机的创建和启动时间。这种现象在大内存型虚拟机中尤为明显,即使增加进行页表映射以及内存分配的并发度,也难以有效提升虚拟机创建和启动的速度。
[0033]有鉴于此,根据本专利技术实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配管理的方法,其特征在于,包括:响应于虚拟机进程访问用户空间时产生缺页异常,为所述用户空间分配物理内存,获取所述物理内存的内存类型标识;在所述内存类型标识为预设标识的情况下,判断所述物理内存是否为空闲内存,以及在所述物理内存不为空闲内存的情况下对所述物理内存进行清零操作,以使所述物理内存成为空闲内存;其中,所述预设标识的物理内存的读带宽大于写带宽。2.如权利要求1所述的方法,其特征在于,所述方法还包括:在为所述用户空间分配物理内存之前,为物理内存节点设置内存类型字段,以及在内核驱动初始化阶段,根据所述物理内存的内存类型在所述内存类型字段写入所述内存类型标识。3.如权利要求1所述的方法,其特征在于,所述方法还包括:在所述内存类型标识不为预设标识的情况下,对所述物理内存进行清零操作,以使所述物理内存成为空闲内存。4.如权利要求1所述的方法,其特征在于,采用伙伴系统为所述用户空间分配物理内存。5.如权利要求1所述的方法,其特征在于,所述虚拟机进程采用数据平面开发套件处理数据包。6.一种内存分配管理的装置,其特征在于,包括:内存分配模块,响...

【专利技术属性】
技术研发人员:姚振国
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1