CN106970826B - 一种基于大页的缺页异常解决方法 - Google Patents

一种基于大页的缺页异常解决方法 Download PDF

Info

Publication number
CN106970826B
CN106970826B CN201710142580.1A CN201710142580A CN106970826B CN 106970826 B CN106970826 B CN 106970826B CN 201710142580 A CN201710142580 A CN 201710142580A CN 106970826 B CN106970826 B CN 106970826B
Authority
CN
China
Prior art keywords
page
large page
new
memory
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710142580.1A
Other languages
English (en)
Other versions
CN106970826A (zh
Inventor
王总辉
陈文智
潘俊良
李国玺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201710142580.1A priority Critical patent/CN106970826B/zh
Publication of CN106970826A publication Critical patent/CN106970826A/zh
Application granted granted Critical
Publication of CN106970826B publication Critical patent/CN106970826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于大页的缺页异常解决方法,具体为:(1)判断大页是否存在于页缓存中,若是,读取该大页,设置其描述符,若否,执行步骤(2);(2)系统向2M大页管理系统申请一个新大页pn,并初始化设置新大页的页描述符,且设置新大页的内容为0;(3)调用解压缩接口,根据其返回值判断大页是否被压缩过,若返回值为0,大页进行解压缩,将解压缩内容写入新大页中,设置大页p对应的页描述符,并执行(5);若返回值为M2RAM_NO_DATA,执行(5);若返回值既非0也非M2RAM_NO_DATA,解压缩过程出错,返回错误至上层接口;(5)系统设置大页p的页表项。该方法解决了大页的缺页异常问题。

Description

一种基于大页的缺页异常解决方法
技术领域
本发明属于通信技术领域,具体涉及一种基于大页的缺页异常解决方法。
背景技术
在当今的电信云环境下,为了提高物理资源的使用效率,单台物理服务器上整合了几十甚至上百个虚拟机来承载电信业务。用户把大量虚拟机整合到少数的物理机上,这样可以更高效的使用物理资源。整合比(consolidation ratio)作为衡量一台物理机运行的虚拟机数据的一种标准,其数值高低代表了平台的效率。高的整合比代表了低成本高效率。而复用技术(overcommitment)是提高整合比的关键技术,其中分为内存复用和CPU复用技术。
所谓内存复用(memory overcommitment)就是一种有效提高整合比的综合技术。其定义如下:允许用户开启的虚拟机的总的配置内存大于实际运行的物理机内存的一种技术。
内存复用在通用操作系统中最典型的体现就是虚拟内存。所有运行的应用的映射的虚拟内存往往超过实际物理内存。如果所有正在运行的应用的工作集超过了物理内存,那么OS可以通过swap回收内存,从而腾出空间。
如今,随着技术的发展,我们的计算机的内存变得越来越大,传统的内存管理将内存以4K的粒度来进行划分也变得越来越低效。
现有的典型的内存复用技术,主要有以下几种:内存压缩、内存去重、ballooning技术、transcendent memory技术以及swap技术等。
内存去重(memory dedulplication)就是把内存中的重复内容消除以提高内存利用率的技术。由于现代计算机的内存是分页管理的,所以内存去重技术往往指的就是页共享(page sharing)技术。它通过共享相同内容的物理内存页从而降低物理内存消耗。内存去重是去掉重复的物理内存,以节省物理内存。
Ballooning技术和transcendent memory技术是基于虚拟化平台上的内存复用技术。简而言之,就是通过监测虚拟化平台上各个虚拟机的实际内存使用情况,来对各个虚拟机的内存进行管理,即将实际使用内存少于分配的内存的虚拟机内存进行回收,来供给其余用途。
内存压缩则比较好理解:由于现今计算机的CPU利用率比较空闲,因此,通过使CPU变得“忙碌”起来,将内存中的一些“冷页”进行压缩然后重新存放到内存中,从而来使我们有更多的可用内存。
在现有内核中,已经有了基于伙伴系统实现大页(hugetlb)的整套机制,包括缺页异常的实现,但是该机制对系统所产生的开销比较大(一个2M大页需要分配512个4K的小页),同时由于对物理内存的连续性要求,在系统运行较长一段时间后,基于该机制的大页分配会经常失败。
内存压缩可以有效的提高内存有效容量,降低页故障率,同时不会有大容量内存的使用带来的能耗和空间消耗。同时可以提高内存带宽使用率。但是压缩和解压缩会带来延迟,如果处理不当可能把压缩带来的好处抵消掉。因此有效使用压缩技术需要谨慎选择实现框架、压缩算法等等。
发明内容
鉴于上述,本发明提供了一种基于大页的缺页异常解决方法,该实现方法能够有效地解决由于新产生大页不在内存中所产生的缺页异常以及该页被压缩后再次被访问所产生的压缩缺页异常问题。
一种基于大页的缺页异常解决方法,包括以下步骤:
(1)系统根据新产生的页故障,判断大页p是否存在于页缓存中,若是,读取该大页p,设置该页p对应的页描述符,并执行步骤(5),若否,执行步骤(2);
(2)系统向2M大页管理系统申请一个新大页pn
(3)系统初始化设置新大页pn对应的页描述符,并将该新大页pn的内容设置为0;
(4)系统调用解压缩接口,并根据该接口调用的返回值判断大页p是否被压缩过,
若返回值为0,则大页p已被压缩,利用解压缩接口对大页p进行解压缩,将解压缩得到的内容写入新大页pn中,并设置新大页pn对应的页描述符,并执行步骤(5);
若返回值为M2RAM_NO_DATA,大页p没有被压缩,保持新大页pn的页描述符不变,并执行步骤(5);
若返回值既非0也非M2RAM_NO_DATA,解压缩过程出错,返回错误至上层接口;
(5)系统设置大页p或新大页pn的页表项。
所述的2M大页管理系统包括:大页内存及调用大页内存的接口函数,其中,大页内存分为多个节点,每个节点分为多个分区,每个分区由以双向链表的形式连接在一起的多个2M大页组成;接口函数包括用于获取单个大页的申请函数、用于释放大页的释放函数、用于将大页占为己有且禁止其他进程访问的锁函数以及用于恢复大页自由的解锁函数。
本发明提供了一种基于大页的缺页异常的处理方法,在相同的物理硬件设施的情况下,该方法结合压缩模块与2M大页管理系统能够增大可用物理内存。不仅在成本开销上,有很大的节省,同时通过大页的支持,能够很明显地降低TLB的miss率,这对性能的提升有着很大的帮助。
附图说明
图1是实施例基于大页的缺页异常处理方法的流程图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
正常的linux系统中,当页错误产生时,判断页错误是否为大页错误,若否,系统对该页执行小页错误相应处理流程,若是,系统对该页执行大页错误相应处理流程,此处大页进入的是linux系统中原有的基于伙伴系统来进行分配的大页缺页调用。
本发明借用现有的hugetlbfs架构,将原有的基于伙伴系统的大页故障处理流程替换为基于2M大页管理系统的大页故障处理流程,具体是通过定义一个宏来使后续流程进行2M大页管理系统的大页框架缺页处理流程,该大页框架缺页异常处理流程如图1所示,具体为:
S01,系统产生类型为新页的页故障;
S02,系统判断大页p是否存在于页缓存page cache中,若是,从page cache中读取该大页p,并设置该页p对应的页描述符,并执行S05,若否,执行S02;
S02,系统向2M大页管理系统申请一个新大页pn
S03,系统初始化设置新大页pn对应的页描述符,并将该新大页pn的内容设置为0;
S04,系统调用解压缩接口,并根据该接口的返回值判断大页p是否被压缩过,
若返回值为0,则大页p已被压缩,利用解压缩接口对大页p进行解压缩,将解压缩得到的内容写入新大页pn中,并设置新大页pn对应的页描述符,并执行S05;
若返回值为M2RAM_NO_DATA,大页p没有被压缩,保持新大页pn的页描述符不变,执行S05;
若返回值既非0也非M2RAM_NO_DATA,解压缩过程出错,返回错误至上层接口;
S05,系统设置大页p或新大页pn的页表项。
本实施例中的2M大页管理系统是大页内存及调用大页内存的接口函数,其中,大页内存分为多个节点,每个节点分为多个分区,每个分区由以双向链表的形式连接在一起的多个2M大页组成,接口函数包括用于获取单个大页的申请函数、用于释放大页的释放函数、用于将大页占为己有且禁止其他进程访问的锁函数以及用于恢复大页自由的解锁函数。
利用本实施例的方法,可以有效地解决由于新产生大页不在内存中所产生的缺页异常以及该页被压缩后再次被访问所产生的压缩缺页异常问题。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种基于大页的缺页异常解决方法,包括以下步骤:
(1)系统根据新产生的页故障,判断大页p是否存在于页缓存中,若是,读取该大页p,设置该大 页p对应的页描述符,并执行步骤(5),若否,执行步骤(2);
(2)系统向2M大页管理系统申请一个新大页pn
(3)系统初始化设置新大页pn对应的页描述符,并将该新大页pn的内容设置为0;
(4)系统调用解压缩接口,并根据该接口调用的返回值判断大页p是否被压缩过,
若返回值为0,则大页p已被压缩,利用解压缩接口对大页p进行解压缩,将解压缩得到的内容写入新大页pn中,并设置新大页pn对应的页描述符,并执行步骤(5);
若返回值为M2RAM_NO_DATA,大页p没有被压缩,保持新大页pn的页描述符不变,并执行步骤(5);
若返回值既非0也非M2RAM_NO_DATA,解压缩过程出错,返回错误至上层接口;
(5)系统设置大页p或新大页pn的页表项;
其中,所述2M大页管理系统包括:大页内存及调用大页内存的接口函数,其中,大页内存分为多个节点,每个节点分为多个分区,每个分区由以双向链表的形式连接在一起的多个2M大页组成;接口函数包括用于获取单个大页的申请函数、用于释放大页的释放函数、用于将大页占为己有且禁止其他进程访问的锁函数以及用于恢复大页自由的解锁函数。
CN201710142580.1A 2017-03-10 2017-03-10 一种基于大页的缺页异常解决方法 Active CN106970826B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710142580.1A CN106970826B (zh) 2017-03-10 2017-03-10 一种基于大页的缺页异常解决方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710142580.1A CN106970826B (zh) 2017-03-10 2017-03-10 一种基于大页的缺页异常解决方法

Publications (2)

Publication Number Publication Date
CN106970826A CN106970826A (zh) 2017-07-21
CN106970826B true CN106970826B (zh) 2020-05-08

Family

ID=59328898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710142580.1A Active CN106970826B (zh) 2017-03-10 2017-03-10 一种基于大页的缺页异常解决方法

Country Status (1)

Country Link
CN (1) CN106970826B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664419A (zh) * 2018-04-03 2018-10-16 郑州云海信息技术有限公司 一种确定内存大页数目的方法及其装置
CN110532042A (zh) * 2019-09-02 2019-12-03 武汉中海庭数据技术有限公司 基于Linux系统的在线地图引擎性能优化方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049388A (zh) * 2012-12-06 2013-04-17 深圳市江波龙电子有限公司 一种分页存储器件的压缩管理方法及装置
CN103488523A (zh) * 2013-09-26 2014-01-01 华为技术有限公司 一种页的访问方法和页的访问装置、服务器
CN104281528A (zh) * 2013-07-09 2015-01-14 浙江大华技术股份有限公司 一种数据存储方法及装置
US9086981B1 (en) * 2010-11-02 2015-07-21 Vmware, Inc. Exporting guest spatial locality to hypervisors
CN105893269A (zh) * 2016-03-31 2016-08-24 武汉虹信技术服务有限责任公司 一种Linux系统下内存管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9086981B1 (en) * 2010-11-02 2015-07-21 Vmware, Inc. Exporting guest spatial locality to hypervisors
CN103049388A (zh) * 2012-12-06 2013-04-17 深圳市江波龙电子有限公司 一种分页存储器件的压缩管理方法及装置
CN104281528A (zh) * 2013-07-09 2015-01-14 浙江大华技术股份有限公司 一种数据存储方法及装置
CN103488523A (zh) * 2013-09-26 2014-01-01 华为技术有限公司 一种页的访问方法和页的访问装置、服务器
CN105893269A (zh) * 2016-03-31 2016-08-24 武汉虹信技术服务有限责任公司 一种Linux系统下内存管理方法

Also Published As

Publication number Publication date
CN106970826A (zh) 2017-07-21

Similar Documents

Publication Publication Date Title
US11531625B2 (en) Memory management method and apparatus
CN110677305B (zh) 一种云计算环境下的自动伸缩方法和系统
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
US9110806B2 (en) Opportunistic page caching for virtualized servers
EP4030289A1 (en) Method and device for virtual machine memory management
CN111078363A (zh) 一种虚拟机的numa节点调度方法、装置、设备及介质
CN107124469B (zh) 一种集群节点通信方法及系统
US11231852B2 (en) Efficient sharing of non-volatile memory
Liu et al. Memory disaggregation: Research problems and opportunities
CN106970826B (zh) 一种基于大页的缺页异常解决方法
CN115129621B (zh) 一种内存管理方法、设备、介质及内存管理模块
CN111045802B (zh) Redis集群组件调度系统及方法、平台设备
US10642520B1 (en) Memory optimized data shuffle
US10768835B1 (en) Opportunistic storage service
US11436141B2 (en) Free memory page hinting by virtual machines
CN109284169B (zh) 基于进程虚拟化的大数据平台进程管理方法及计算机设备
CN107704618B (zh) 一种基于aufs文件系统的热迁徙方法和系统
CN114610243A (zh) 一种精简卷转换方法、系统、存储介质及设备
WO2017070869A1 (zh) 一种内存配置方法、装置及系统
CN108733593B (zh) 用于存储管理的方法、设备和计算机可读介质
US11221799B2 (en) Techniques for clustering compute nodes in distributed storage
US11809717B2 (en) Data managing method, an electric device, and a computer program product for efficient management of services
US20230153171A1 (en) Memory ballooning related memory allocation techniques for execution environments
CN118034861A (zh) 云计算系统、云桌面的部署方法及云桌面的部署装置
CN115292136A (zh) 一种超融合集群内存管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant