CN108021442A - 释放物理内存的系统、装置及方法 - Google Patents

释放物理内存的系统、装置及方法 Download PDF

Info

Publication number
CN108021442A
CN108021442A CN201610973625.5A CN201610973625A CN108021442A CN 108021442 A CN108021442 A CN 108021442A CN 201610973625 A CN201610973625 A CN 201610973625A CN 108021442 A CN108021442 A CN 108021442A
Authority
CN
China
Prior art keywords
page
physical memory
free
mapping table
free page
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.)
Pending
Application number
CN201610973625.5A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610973625.5A priority Critical patent/CN108021442A/zh
Publication of CN108021442A publication Critical patent/CN108021442A/zh
Pending legal-status Critical Current

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

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

Abstract

本发明公开了一种释放物理内存的系统、装置及方法,涉及互联网技术领域,为解决宿主机无法完全释放客户机的闲置物理内存的问题而发明。本发明的方法包括:客户机扫描映射表,以查找空闲页,映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;通过映射表获取空闲页的页面号;将页面号发送给所述客户机对应的宿主机,以使得宿主机根据页面号释放空闲页的物理内存。本发明主要应用于虚拟化环境中。

Description

释放物理内存的系统、装置及方法
技术领域
本发明涉及互联网技术领域,尤其涉及一种释放物理内存的系统、装置及方法。
背景技术
在虚拟化环境中,可以在一台物理机中建立多个虚拟机进程,每一个虚拟机进程对应一个虚拟机,所有虚拟机共享物理机的内存、磁盘及中央处理器(Central ProcessingUnit,简称CPU)等资源。由于虚拟机通常用于出租给公司或个人使用,并且需要依托于物理机而存在,因此行业内也将虚拟机称为客户机,将物理机称为宿主机。
通常,宿主机会对客户机不再使用的资源进行释放,以保证其他客户机对共享资源的使用,较为常见的就是对物理内存的释放。现有技术中,客户机可以通过客户机的伙伴系统(buddy system)释放物理内存,但是该内存释放过程只涉及对客户机内核数据结构的操作,在执行过程中客户机的处理器进程不会陷入到虚拟机监管程序(Virtual MachineMonitor,简称VMM)中,因此内存释放过程对虚拟机监管程序而言是透明的,虚拟机监管程序无法获知客户机的内存释放操作,从而无法及时回收客户机不再使用的物理内存。
为解决该问题,现有技术提出了两种释放客户机物理内存的方式:内核相同页合并机制(Kernel Samepage Merging,简称KSM)以及气球机制(Ballooning)。前者方式是在宿主机内建立一个内核线程,通过该线程周期性的对客户机的物理内存页进行扫描,将完全相同的两个物理内存页合并为一份,并释放另一个物理内存页占用的物理内存。后者方式则是在闲置物理内存过小时,由宿主机通知客户机进行内存释放,客户机启动气球驱动(Balloon Driver)程序,按照宿主机的内存需求释放一部分空闲的物理内存。
上述两种方式均是由宿主机主动发起内存释放过程,因此可以有效解决前述技术中宿主机无法及时回收物理内存的问题。但是KSM机制中宿主机仅关心相同物理内存页对物理内存的重复性浪费,无法获知客户机对已分配物理内存的占用程度;而气球机制中宿主机只是通知客户机释放物理内存,客户机按照宿主机的指示释放的内存量释放物理内存。上述两种方式中,由于宿主机不知道客户机对哪些已分配的物理内存不会再继续使用,因此无法完全释放客户机的闲置物理内存。
发明内容
本发明提供了一种释放物理内存的系统、装置及方法,能够解决宿主机无法完全释放客户机的闲置物理内存的问题。
为解决上述问题,本发明第一方面提供了一种释放物理内存的系统,包括:
客户机,用于扫描映射表,以查找空闲页,映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系,通过映射表获取空闲页的页面号,将页面号发送给所述客户机对应的宿主机;
宿主机,用于调用内存释放函数,根据页面号释放空闲页的物理内存。
第二方面,本发明还提供了一种释放物理内存的装置,包括:
扫描单元,用于扫描映射表,以查找空闲页,映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
获取单元,用于通过映射表获取空闲页的页面号;
发送单元,用于将页面号发送给所述客户机对应的宿主机,以使得宿主机根据页面号释放空闲页的物理内存。
第三方面,本发明还提供了一种释放物理内存的方法,包括:
客户机扫描映射表,以查找空闲页,映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
通过映射表获取空闲页的页面号;
将页面号发送给所述客户机对应的宿主机,以使得宿主机根据页面号释放空闲页的物理内存。
第四方面,本发明还提供一种释放物理内存的系统,所述系统包括客户机和宿主机,其中:
所述客户机,用于确定扫描空闲页位图的扫描起点,按照预设扫描周期,从所述扫描起点处扫描所述空闲页位图,从所述空闲页位图中获取预定数量的空闲页,并确定所述空闲页对应的页面号,将所述空闲页对应的页面号发送至所述客户机对应的宿主机;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页;
所述宿主机,用于接收所述客户机发送的所述空闲页对应的页面号,并调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
所述客户机,还用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系,根据所述页面号,将所述映射表中的所述空闲页记录于所述空闲页位图中,并对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
第五方面,本发明还提供一种释放物理内存的装置,所述装置包括:
第一确定单元,用于确定扫描空闲页位图的扫描起点;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页;
第一扫描单元,用于按照预设扫描周期,从所述确定单元确定的所述扫描起点处扫描所述空闲页位图;
获取单元,用于在所述第一扫描单元扫描所述空闲页位图过程中,从所述空闲页位图中获取预定数量的空闲页;
第二确定单元,用于确定所述获取单元获取的所述空闲页对应的页面号;
发送单元,用于将所述第二确定单元确定的所述空闲页对应的页面号发送至所述客户机对应的宿主机,以使得所述宿主机调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
第二扫描单元,用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
记录单元,用于根据所述页面号,将所述第二扫描单元扫描的所述映射表中的所述空闲页记录于所述空闲页位图中;
标记单元,用于对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
第六方面,本发明还提供一种释放物理内存的方法,所述方法包括:
客户机确定扫描空闲页位图的扫描起点;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识;
按照预设扫描周期,从所述扫描起点处扫描所述空闲页位图;
从所述空闲页位图中获取预定数量的空闲页,并确定所述空闲页对应的页面号;
将所述空闲页对应的页面号发送至所述客户机对应的宿主机,以使得所述宿主机调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
其中,生成空闲页位图包括:
扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
根据所述页面号,将所述映射表中的所述空闲页记录于所述空闲页位图中,并对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
本发明提供的释放物理内存的系统、装置及方法,能够由客户机对用于记录物理内存页空闲状态的映射表进行扫描,查找自身存在的空闲页,然后将空闲页的页面号发送给客户机对应的宿主机,由宿主机根据页面号对客户机中空闲页的物理内存进行释放。本发明中空闲页的查找以及物理内存的释放由客户机主动发起,客户机通过扫描映射表可以找到当前所有的空闲页,从而使得宿主机可以将客户机中闲置的物理内存全部释放干净。与现有技术相比,本发明能够完全释放客户机的闲置物理内存,提高宿主机的内存利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种释放物理内存的方法流程图;
图2示出了本发明实施例提供的一种分布式计算机系统的示意图;
图3示出了本发明实施例提供的一种一个宿主机内部署多个客户机的示意图;
图4示出了本发明实施例提供的另一种释放物理内存的方法流程图;
图5示出了本发明实施例提供的一种空闲页链表的示意图;
图6示出了本发明实施例提供的一种比特图的示意图;
图7示出了本发明实施例提供的一种基于比特图释放物理内存的步骤示意图;
图8示出了本发明实施例提供的另一种释放物理内存的方法流程图;
图9示出了本发明实施例提供的一种客户机与宿主机交互的示意图;
图10示出了本发明实施例提供的一种释放物理内存的装置的组成框图;
图11示出了本发明实施例提供的另一种释放物理内存的装置的组成框图;
图12示出了本发明实施例提供的一种释放物理内存的系统示意图;
图13示出了本发明实施例提供的另一种释放物理内存的装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决现有技术中宿主机无法完全释放客户机的闲置物理内存的问题,本发明实施例提供了一种释放物理内存的方法。该方法基于虚拟化环境实现,主要应用于客户机一侧。为便于理解,本实施例以一台客户机为例进行说明,但应当明确的是,这种说明方式并不作为对客户机数量的限制。实际应用中,当宿主机中部署多台客户机时,各个客户机之间可以同步或异步的执行本实施例的方法,独立释放自身的闲置物理内存。如图1所示,本实施例提供的方法包括:
101、客户机扫描映射表,以查找空闲页。
当物理内存被分配给客户机时,客户机以物理内存页的形式对这些物理内存进行使用,对数据进行存储。实际应用中,可以将物理内存页的大小作为使用物理内存的基本单位。一般情况下一个物理内存页的大小可以是4KB,但并不限定于此。
当执行完业务逻辑后,相应的物理内存页将暂时或永久不再被使用,由于现有技术中这些物理内存页无法被客户机主动释放,其仍占用着宿主机的物理内存,因此将这些不再使用的物理内存页称为空闲页。
本实施例中,客户机自身维护一个映射表,该映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系。客户机可以通过预设方式建立或更新该映射表,以使得其能够反映当前最新的页面空闲状态。通过对映射表进行扫描,客户机可以知道当前哪些物理内存页属于空闲页,即需要释放哪些物理内存页的物理内存。
在建立或更新该映射表时,客户机可以使用的预设方式包括:
1、根据物理内存页的释放操作和/或分配操作,修改物理内存页的空闲状态。
2、根据空闲页链表(free list)中的空闲页信息,修改物理内存页的空闲状态。
对于方式1,客户机可以对客户机物理内存页的释放操作及分配操作进行监听,当执行释放操作时,说明一部分客户机的物理内存页将不再被使用,因此产生了新的空闲页;当执行分配操作时,说明一部分空闲页被客户机重新分配使用。当这两种情况中的一者发生时,或者当两者情况同时发生时,客户机对映射表进行修改,将物理内存页的最新空闲状态及时更新到映射表中。
需要说明的是,前述释放操作是对客户机物理内存页的释放操作,即客户机弃用物理内存页的操作,由于客户机在释放自身物理内存页时并没有改变客户机物理内存页与宿主机物理内存之间的映射关系,因此这种操作并不是真正的对宿主机的物理内存进行了释放。不应将上述对客户机物理内存页的释放操作混同于对宿主机物理内存本身的释放。
在方式2中,空闲页链表本身就是用于记录空闲页的,其也是基于页面的释放操作及分配操作获得物理内存页的空闲状态,因此可以将空闲页链表中的页面空闲状态写入到该映射表中。
本实施例中,客户机可以自行确定扫描映射表的时机,例如按照预设周期进行扫描,或当物理内存页的数量达到一定阈值时进行扫描,或者基于对空闲页链表的监控,当空闲页数量达到一定阈值时进行扫描等。此外,客户机也可以根据宿主机发送的扫描指令执行扫描操作。特别的,在后者方式中,当宿主机中部署有多台客户机时,宿主机可以制定全局扫描策略,例如宿主机可以根据客户机的编号、名称、种类、功能、所属用户、权限、优先级、资源占用程度等属性对客户机进行分类,并决定不同类别客户机的扫描先后顺序。宿主机可以基于该全局扫描策略向客户机发送即时扫描指令,也可以将全局扫描策略直接配置给客户机,由客户机自动执行该策略。
与扫描映射表类似的,客户机也自主确定更新映射表的时机(例如周期性的),或者根据宿主机的指令或策略更新映射表。当然,在本实施例中,客户机还可以在扫描映射表之前,或者完成映射表扫描后执行映射表更新的流程。
此外,本实施例中映射表的形式也可以是多种多样的。例如在内容上,映射表可以仅对空闲页进行记录,也可以对所有物理内存页进行记录,并通过状态标识对空闲页及非空闲页进行区分,在本发明实施例中,若映射表用于记录客户机所有物理内存页的空闲状态与页面号之间的对应关系,能够避免扫描映射表并查找空闲页时扫描中断的发生,具体的,本发明实施例对映射表的形式不作具体限定;在表结构上,映射表可以但不限于以下述几种结构存在:链表、队列、比特图(bitmap)。以映射表为比特图结构为例进行说明,比特图在记录客户机物理内存页的空闲状态与页面号之间的对应关系时,以连续存储的方式进行记录,该种存储结构占用极少的内存空间。
102、客户机通过映射表获取空闲页的页面号。
在客户机中,每一个物理内存页都被分配有一个页面号(Page Frame Number,Pfn),该页面号用于对物理内存页进行唯一标识之用。如前所述,映射表中记录有物理内存页的空闲状态以及页面号,在查找到空闲页后,客户机从中获取空闲页的页面号。
对于记录所有物理内存页的映射表,客户机在扫描过程中通过状态标识查找空闲页,并获取空闲页的页面号;对于仅对空闲页进行记录的映射表,客户机可以将其中所有的页面号直接进行获取。
103、客户机将页面号发送给所述客户机对应的宿主机,以使得宿主机根据页面号释放空闲页的物理内存。
本步骤中,客户机可以调用预设的功能函数、API或SDK进行页面号的传递。这些功能函数、API或SDK可以是系统原生的,也可以是预先编写的,本实施例对此不作限制。
宿主机通过其上运行的虚拟机监管程序(Virtual Machine Monitor,简称VMM或又称Hypervisor)接收客户机发送的页面号,并调用内存释放函数对空闲页的物理内存进行释放,由此完成客户机物理内存的回收。
在实际应用过程中,一个宿主机内可以部署多个客户机,而宿主机可能会独立运行作业,也可能位于分布式计算机系统中交互运行,本发明实施例中以宿主机位于分布式计算机系统中为例进行说明。如图2所示,图2示出了本发明实施例提供的一种分布式计算机系统的示意图,在该分布式计算机系统中包含9个宿主机,编号分别为1、2…9;其中,以编号为1及编号为2的宿主机为例进行说明,假设,编号为1的宿主机内包含4个客户机,客户机的编号分别为001、002、003及004;编号为2的宿主机内包含3个客户机,客户机的编号分别为a、b及c,如图3所示,图3示出了本发明实施例提供的一种一个宿主机内部署多个客户机的示意图。
需要说明的是,图2及图3仅为便于对宿主机、宿主机与客户机对应关系的更好理解,而给出的示例性举例,具体的,本发明实施例中,对宿主机的用途(是否位于分布式计算机系统中)、宿主机之间的层级关系、宿主机的个数及一个宿主机内部署的客户机的个数等内容不作具定。
请继续参阅图3,若编号为002的客户机执行图1所示的方法步骤,在编号为002的客户机通过映射表获取到空闲页的页面号后,将该页面号发送至其部署载体的宿主机1中,以便宿主机1根据页面号释放空闲页的物理内存;若编号为c的客户机执行图1所示的方法,在编号为c的客户机获取到空闲页的页面号后,将该页面号发送至其对应的宿主机2中,而非是将页面号发送宿主机1或者宿主机3中。
本实施例提供的释放物理内存的方法,能够由客户机对用于记录物理内存页空闲状态的映射表进行扫描,查找自身存在的空闲页,然后将空闲页的页面号发送给客户机对应的宿主机,由宿主机根据页面号对客户机中空闲页的物理内存进行释放。本实施例中空闲页的查找以及物理内存的释放由客户机主动发起,客户机通过扫描映射表可以找到当前所有的空闲页,从而使得宿主机可以将客户机中闲置的物理内存全部释放干净。与现有技术相比,本实施例能够完全释放客户机的闲置物理内存,提高宿主机的内存利用率。
进一步的,作为对图1所示方法的细化,本发明实施例还提供了一种释放物理内存的方法。如图4所示,该方法包括:
401、客户机通过建立的内核线程扫描映射表,以查找空闲页。
本实施例中,客户机建立专门的内核线程执行图4所示流程。在扫描映射表时,客户机可以从映射表的第一个节点开始,对映射表中的所有节点依次进行扫描。在映射表中,一个节点与一个页面对应,对于空闲页链表而言,每个节点中记录有对应空闲页的页面号;对于记录所有物理内存页空闲状态的映射表而言,节点中记录有对应页面的状态标识,页面号作为节点索引,与节点建立关联关系。
通常,客户机中可能存在大量的物理内存页,此时如若对映射表中的节点全部进行扫描,则会占用客户机的大量CPU资源,使得客户机的正常业务产生较大延时。本实施例中,可以选择空闲时段(例如夜间)释放物理内存,但是这种方式并不是最优的,因为一般情况下内存释放过程与业务实现过程是相伴相随的,业务实现常常需要以分配足够物理内存为基础实现。如若宿主机需要内存时无法对客户机的物理内存进行及时释放,那么将会导致其他客户机的业务无法正常实现。
因此在本实施例的一种改进方案中,客户机可以周期性的执行图4所示的内存释放过程。在每次释放内存时,客户机仅对映射表中的一部分节点进行扫描,由此减少页面的扫描数量,降低内存释放过程的CPU资源消耗。
具体的,客户机可以在映射表中选择一部分节点进行扫描,包括但不限于通过哈希(HUSH)算法进行节点选择。例如,客户机可以以页面号为基础除以某个数值,将余数为某个或某几个预设值的节点确定为需要扫描的节点。
而在本实施例的另一种实现方式中,为了进一步减少算法本身的资源消耗,客户机还可以通过更为简单的预设算法在映射表中确定一个扫描起始节点,从该扫描起始节点开始按照映射表中的节点顺序进行扫描操作。
进一步的,考虑到本方式是对部分节点进行扫描,为避免每次扫描过程都是针对同一部分节点进行扫描,本方式在选择预设算法时,采用能够在历次扫描过程中将不同节点确定为扫描起始节点的算法使用。较为简便的方式是将前次扫描结束后的下一个节点确定为本次扫描的扫描起始节点。例如,假设前一次扫描到了第245个节点处,那么本次扫描时将第246个节点作为扫描起始节点继续进行扫描。
在上述方式中,客户机可以从扫描起始节点开始,对映射表中的剩余的节点全部进行扫描。但是考虑到当扫描起始节点位置较为靠前时,客户机的扫描量仍然较大,因此还可以在确定扫描起始节点的基础上进一步设定一个扫描长度。该扫描长度以节点数量为单位,规定了单次扫描的节点数量,当客户机从扫描起始节点开始扫描了该数量的节点后,客户机停止本次节点扫描过程,执行后续步骤。
进一步的,客户机是按照彼此独立的线程进行物理内存页操作(包括释放操作和分配操作)和映射表扫描的,有可能存在在扫描映射表的过程中进行物理内存页操作的情况。当此种情况发生时客户机可能会将被重新分配的物理内存页释放掉,由此影响业务实现,严重时还会导致客户机宕机。例如,在扫描过程中客户机将扫描到的页面X确定为空闲页,并继续进行后续页面的扫描。而在扫描完成之前客户机将扫描过的页面X重新予以分配使用。此种情况下,由于客户机在完成扫描前不会再对页面X进行重复扫描,因此会在扫描之后将页面X的物理内存进行错误释放,从而导致页面X无法被客户机业务重新使用。
为解决上述问题,本实施例在进行映射表扫描或物理内存页操作的过程中,使用自旋锁对上述两个过程进行互斥控制,使得当前者线程在进行映射表扫描时后者线程无法对物理内存页进行操作,同样的,当后者线程对物理内存页进行操作时前者线程无法扫描映射表,由此物理内存页操作后的数据与映射表扫描的数据一致,避免内存释放过程对业务实现产生影响。
402、客户机调用超级调用Hypercall函数从映射表中获取空闲页的页面号。
超级调用(Hypercall)与系统调用(Syscall)类似,也使用调用号以区别不同类型的超级调用。本实施例中,客户机依赖于一个超级调用函数“HC_FREE_GFN”获取空闲页的页面号。其中“GFN”表示“获取空闲页页面号(Get Frame Number)”。
403、客户机将页面号发送给宿主机。
运行在宿主机上的虚拟机监管程序根据该页面号释放对应的物理内存,具体来说,在Linux中调用内核函数zap_page_range()释放物理内存。
在本实施例中,客户机还可以在扫描映射表,以查找空闲页之前,根据外部的配置指令确定下述至少一种内存释放参数,并按照确定的内存释放参数执行图4所示流程:扫描周期、扫描长度、释放页数。其中配置指令可以直接来自于宿主机,具体参数数值可以有运维人员设置获得。
具体的,扫描周期是指客户机重复执行图4所示流程的时间间隔,一般情况下扫描周期越小物理内存释放的越及时,但是也会消耗更多的CPU资源;扫描长度是指一次扫描过程需要在映射表中扫描的节点数量,该长度最大为映射表的字节数量,最小为1,扫描长度设置的越大物理内存释放的越及时,但是也会消耗更多的CPU资源;释放页数是指进行一次超级调用能够释放的空闲页数量,当映射表为空闲页链表时,在空闲页足够多的前提下,该释放页数即为一次超级调用实际释放的空闲页数量,当映射表中还包括在用的物理内存页时,因为扫描的页面中存在部分非空闲页面,因此一次超级调用实际释放的空闲页数量不多于该释放页数。
在本发明实施例的一种实现方式中,客户机可以直接将空闲页链表作为映射表使用。如图5所示,图5示出了本发明实施例提供的一种空闲页链表的示意图,空闲页链表以链式存储结构存储各个空闲页的页面号,页面号的排列顺序可以由页面释放操作的先后顺序决定,也可以由页面号本身的字符规律决定(例如按照数字由大到小排列,或按照字母顺序排列)。这种方式能够减少单独维护映射表所产生的开销,但是也存在一定的问题:通常,物理内存页的释放和分配操作是不断发生的,如果将空闲页链表作为映射表使用,那么当分配操作将链表中的某个空闲页删除时,客户机就需要从这个页面的节点开始重新进行扫描,由此产生读写错误,容易使客户机内核崩溃。
作为对上述实现方式的替换,本实施例另一种实现方式采用比特图作为映射表使用。比特图中的每一个比特位对应一个物理内存页的页面号,比特位中记录有表征物理内存页是否为空闲页的状态标识。客户机可以根据释放/分配操作或空闲页链表维护一个形如图6所示的比特图,该比特图中记录有所有物理内存页的比特位,其中,状态标识为“1”表示物理内存页为空闲页、状态标识为“0”表示物理内存页为非空闲页。当然,实际应用中也可以使用“0”表示空闲页、“1”表示非空闲页。
下面,以比特图作为映射表为例,给出本发明实施例的一个应用场景:
S1、客户机设置扫描相关参数。
根据外部的配置指令,客户机将扫描周期配置为100毫秒、扫描长度配置为4096个比特、释放页数配置为64比特(页面)。
S2、客户机按照100毫秒的周期对比特图进行部分节点扫描。
如图7所示,客户机将第129个比特位确定为扫描起始节点,从该节点开始按照节点顺序扫描共4096个节点。在前2043个节点中查找到64个空闲页,在后2053个节点中查找到15个空闲页。客户机先后执行两次S3至S4,通过两次超级调用将前64个空闲页和后15个空闲页的页面号先后发送给宿主机。
S3、客户机进行超级调用获取空闲页的页面号。
S4、客户机将页面号发送给宿主机。
客户机先进行一次超级调用,通过S3至S4将前64个空闲页的页面号发送给宿主机进行内存释放,然后再进行一次超级调用,通过S3至S4将后15个空闲页的页面号发送给宿主机进行内存释放。
S5、宿主机在Linux中调用内核函数zap_page_range()释放物理内存。
宿主机通过虚拟机监管程序先后调用内核函数zap_page_range(),分别将前后两次超级调用涉及的空闲页的物理内存进行释放。
以上已详细说明了在虚拟化环境下如何释放客户机中物理内存的执行过程,本发明实施例还提供一种释放物理内存的方法。本方法中,主要以使用空闲页位图的应用场景为例进行说明,但是需要说明的是,并非意在限定在释放物理内存时仅能将空闲页记录于空闲页位图中。如图8所示,该场景涉及的主要流程方法包括:
801、客户机确定扫描空闲页位图的扫描起点。
在宿主机执行释放客户机内的空闲页所占用的物理内存时,首先,需要由客户机确定其物理内存中哪些内存页是空闲页,其次,将空闲页的相关信息发送宿主机,由宿主机执行空闲页的内存释放,以提高宿主机的内存利用率。
在客户机确定其物理内存页是否为空闲页时,扫描空闲页位图,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识。本发明实施例中,通过扫描空闲页位图的方式查找空闲页在扫描之前要确定扫描空闲页位图的扫描起点;作为本发明实施例的一种实现方式,将所述空闲页位图的第一个节点作为扫描起点,客户机每次扫描空闲页位图时,均从第一个节点处开始扫描;该种方式中,每次均从第一个节点开始扫描可能会造成客户机系统响应缓慢。
优选的,为了提高客户机的可用性,客户机在确定扫描空闲页位图的扫描起点时,可以从相邻上一次的扫描结束点对应的下一个节点处开始扫描空闲页位图。示例性的,假设,客户机上一个扫描结束点为空闲页位图中的第100个节点,本次执行扫描空闲页位图时,将空闲页位图中的第101个节点作为扫描起点,提高了扫描空闲页位图的扫描效率。本发明实施例对扫描起点的设定不作限定。
802、客户机按照预设扫描周期,从所述扫描起点处扫描所述空闲页位图。
在实际应用中,在客户机扫描空闲页位图之前,生成空闲页位图,所述生成空闲页位图的方式可以采用但不局限局以下方式,例如:扫描映射表,并查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;根据所述页面号,将所述映射表中的所述空闲页记录于所述空闲页位图中,并对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
示例性的,图9示出了本发明实施例提供的一种客户机与宿主机交互的示意图,在图9中,给出了宿主机生成空闲页位图的操作说明。如图9所示,客户机扫描映射表中的空闲页,并获取到空闲页对应的页面号(Pfn),在本实施例中,映射表中只记录有客户机物理内存页的空闲页与页面号之间的对应关系;在获取到页面号Pfn 4后,并在空闲页位图中查找页面号Pfn 4对应的节点,并对该节点使用空闲状态标记1进行标记,使用0对非空闲的内存页进行标记。需要说明的是,图9仅为示例性的举例,本发明实施例对映射表及空闲页位图的存储数据的格式不作限定。
803、客户机从所述空闲页位图中获取预定数量的空闲页,并确定所述空闲页对应的页面号。
请继续参阅图9,假设,将空闲页位图中的第二个节点作为扫描起点,并设置从空闲页位图中读取的空闲页的预定数量为50,在扫描过程中,确定出空闲页对应的页面号。如图9,在空闲页位图中,从空闲页位图的第一节点开始,顺序存储客户机内的所有物理内存页,本发明实施例对空闲页位图中记录空闲状态的个数不作限定。
804、客户机将所述空闲页对应的页面号发送至客户机对应的宿主机,以使得所述宿主机调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存。
有关宿主机释放页面号对应的空闲页所占用的物理内存的说明,请参考上述相关详细描述,本发明实施例在此不再进行一一赘述。
进一步的,作为对上述各方法实施例的实现,本发明实施例还提供了一种释放物理内存的装置。该装置位于客户机中,如图10所示,该装置包括:扫描单元1001、获取单元1002、发送单元1003,其中:
扫描单元1001,用于扫描映射表,以查找空闲页,映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
获取单元1002,用于通过映射表获取空闲页的页面号;
发送单元1003,用于将页面号发送给所述客户机对应的宿主机,以使得宿主机根据页面号释放空闲页的物理内存。
进一步的,扫描单元1001扫描的映射表为比特图bitmap,比特图中的每一个比特位对应一个物理内存页的页面号,并记录有表征物理内存页是否为空闲页的状态标识。
进一步的,如图11所示,该装置还包括修改单元1004,用于:
在扫描映射表,以查找空闲页之前,根据物理内存页的释放操作和/或分配操作,修改物理内存页的空闲状态;或者,
根据空闲页链表中的空闲页信息,修改物理内存页的空闲状态。
进一步的,如图11所示,该装置还包括:控制单元1005,用于通过自旋锁对扫描映射表与物理内存页操作进行互斥控制。
进一步的,如图11所示,扫描单元1001,包括:
确定模块10011,用于通过预设算法在映射表中确定扫描起始节点,预设算法用于将不同的节点确定为扫描起始节点;
扫描模块10012,用于从扫描起始节点开始进行扫描操作。
进一步的,确定模块10011,用于将前次扫描结束后的下一个节点确定为所述扫描起始节点。
进一步的,获取单元1002用于调用超级调用Hypercall函数从映射表中获取空闲页的页面号。
进一步的,如图11所示,该装置还包括:
确定单元1006,用于在扫描映射表,以查找空闲页之前,根据配置指令确定下述至少一种内存释放参数:扫描周期、扫描长度、释放页数。
进一步的,作为对上述各方法实施例的实现,本发明实施例还提供了一种释放物理内存的系统。如图12所示,该系统包括:客户机1201及宿主机1202,其中,客户机1201与宿主机1202之间建立有数据交互关系,客户机1201包含图10或图11所示的装置。
客户机1201,用于扫描映射表,以查找空闲页,映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系,通过映射表获取空闲页的页面号,将页面号发送给宿主机1202;
宿主机1202,用于调用内存释放函数,根据页面号释放空闲页的物理内存。
本实施例提供的释放物理内存的装置及系统,能够由客户机对用于记录物理内存页空闲状态的映射表进行扫描,查找自身存在的空闲页,然后将空闲页的页面号发送给客户机对应的宿主机,由宿主机根据页面号对客户机中空闲页的物理内存进行释放。本实施例中空闲页的查找以及物理内存的释放由客户机主动发起,客户机通过扫描映射表可以找到当前所有的空闲页,从而使得宿主机可以将客户机中闲置的物理内存全部释放干净。与现有技术相比,本实施例能够完全释放客户机的闲置物理内存,提高宿主机的内存利用率。
进一步的,本发明实施例还提供一种释放物理内存的装置,如图13所示,所述装置包括:
第一确定单元1301,用于确定扫描空闲页位图的扫描起点;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识;
第一扫描单元1302,用于按照预设扫描周期,从所述确定单元1301确定的所述扫描起点处扫描所述空闲页位图;
获取单元1303,用于在所述第一扫描单元1302扫描所述空闲页位图过程中,从所述空闲页位图中获取预定数量的空闲页;
第二确定单元1304,用于确定所述获取单元1303获取的所述空闲页对应的页面号;
发送单元1305,用于将所述第二确定单元1304确定的所述空闲页对应的页面号发送至所述客户机对应的宿主机,以使得所述宿主机调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
第二扫描单元1306,用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
记录单元1307,用于根据所述页面号,将所述第二扫描单元1306扫描的所述映射表中的所述空闲页记录于所述空闲页位图中;
标记单元1308,用于对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
进一步的,本发明实施例还提供一种释放物理内存的系统,所述系统包括客户机和宿主机,其中,客户机与宿主机之间建立有数据交互关系,客户机包含图13所示的装置。
所述客户机,用于确定扫描空闲页位图的扫描起点,按照预设扫描周期,从所述扫描起点处扫描所述空闲页位图,从所述空闲页位图中获取预定数量的空闲页,并确定所述空闲页对应的页面号,将所述空闲页对应的页面号发送至所述客户机对应的宿主机;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页;
所述宿主机,用于接收所述客户机发送的所述空闲页对应的页面号,并调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
所述客户机,还用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系,根据所述页面号,将所述映射表中的所述空闲页记录于所述空闲页位图中,并对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
本实施例提供的释放物理内存的装置及系统,能够由客户机扫描空闲页位图的扫描起点;其中,空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识;按照预设扫描周期,从扫描起点处扫描空闲页位图;从空闲页位图中获取预定数量的空闲页,并确定空闲页对应的页面号;将空闲页对应的页面号发送至客户机对应的宿主机由宿主机调用内存释放函数释放页面号对应的空闲页所占用的物理内存。本实施例中空闲页的查找以及物理内存的释放由客户机主动发起,客户机通过扫描映射表可以找到当前所有的空闲页,从而使得宿主机可以将客户机中闲置的物理内存全部释放干净。与现有技术相比,本实施例能够完全释放客户机的闲置物理内存,提高宿主机的内存利用率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (20)

1.一种释放物理内存的系统,其特征在于,所述系统包括客户机和宿主机,其中:
所述客户机,用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系,通过所述映射表获取所述空闲页的页面号,将所述页面号发送给所述客户机对应的所述宿主机;
所述宿主机,用于调用内存释放函数,根据所述页面号释放所述空闲页的物理内存。
2.一种释放物理内存的装置,其特征在于,所述装置包括:
扫描单元,用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
获取单元,用于通过所述映射表获取所述空闲页的页面号;
发送单元,用于将所述页面号发送给所述客户机对应的宿主机,以使得所述宿主机根据所述页面号释放所述空闲页的物理内存。
3.根据权利要求2所述的装置,其特征在于,所述扫描单元扫描的所述映射表为比特图bitmap,所述比特图中的每一个比特位对应一个物理内存页的页面号,并记录有表征所述物理内存页是否为空闲页的状态标识。
4.根据权利要求2所述的装置,其特征在于,所述装置还包括修改单元,用于:
在扫描映射表之前,根据物理内存页的释放操作和/或分配操作,修改物理内存页的空闲状态;或者,
根据空闲页链表中的空闲页信息,修改物理内存页的空闲状态。
5.根据权利要求2所述的装置,其特征在于,所述装置还包括:控制单元,用于通过自旋锁对扫描映射表与物理内存页操作进行互斥控制。
6.根据权利要求2所述的装置,其特征在于,所述扫描单元,包括:
确定模块,用于通过预设算法在所述映射表中确定扫描起始节点,所述预设算法用于将不同的节点确定为扫描起始节点;
扫描模块,用于从所述扫描起始节点开始进行扫描操作。
7.根据权利要求6所述的装置,其特征在于,所述确定模块,用于将前次扫描结束后的下一个节点确定为所述扫描起始节点。
8.根据权利要求2所述的装置,其特征在于,所述获取单元用于调用超级调用Hypercall函数从所述映射表中获取所述空闲页的页面号。
9.根据权利要求2至8中任一项所述的装置,其特征在于,所述装置还包括:
确定单元,用于在扫描映射表之前,根据配置指令确定下述至少一种内存释放参数:扫描周期、扫描长度、释放页数。
10.一种释放物理内存的方法,其特征在于,所述方法包括:
客户机扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
通过所述映射表获取所述空闲页的页面号;
将所述页面号发送给所述客户机对应的宿主机,以使得所述宿主机根据所述页面号释放所述空闲页的物理内存。
11.根据权利要求10所述的方法,其特征在于,所述映射表为比特图bitmap,所述比特图中的每一个比特位对应一个物理内存页的页面号,并记录有表征所述物理内存页是否为空闲页的状态标识。
12.根据权利要求10所述的方法,其特征在于,在扫描映射表之前,所述方法进一步包括:
根据物理内存页的释放操作和/或分配操作,修改物理内存页的空闲状态;或者,
根据空闲页链表中的空闲页信息,修改物理内存页的空闲状态。
13.根据权利要求10所述的方法,其特征在于,所述方法进一步包括:
通过自旋锁对扫描映射表与物理内存页操作进行互斥控制。
14.根据权利要求10所述的方法,其特征在于,所述扫描映射表,包括:
通过预设算法在所述映射表中确定扫描起始节点,所述预设算法用于将不同的节点确定为扫描起始节点;
从所述扫描起始节点开始进行扫描操作。
15.根据权利要求14所述的方法,其特征在于,所述通过预设算法在所述映射表中确定扫描起始节点,包括:
将前次扫描结束后的下一个节点确定为所述扫描起始节点。
16.根据权利要求10所述的方法,其特征在于,所述通过所述映射表获取所述空闲页的页面号,包括:
调用超级调用Hypercall函数从所述映射表中获取所述空闲页的页面号。
17.根据权利要求10至16中任一项所述的方法,其特征在于,在扫描映射表之前,所述方法进一步包括:
根据配置指令确定下述至少一种内存释放参数:扫描周期、扫描长度、释放页数。
18.一种释放物理内存的系统,其特征在于,所述系统包括客户机和宿主机,其中:
所述客户机,用于确定扫描空闲页位图的扫描起点,按照预设扫描周期,从所述扫描起点处扫描所述空闲页位图,从所述空闲页位图中获取预定数量的空闲页,并确定所述空闲页对应的页面号,将所述空闲页对应的页面号发送至所述客户机对应的宿主机;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识;
所述宿主机,用于接收所述客户机发送的所述空闲页对应的页面号,并调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
所述客户机,还用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系,根据所述页面号,将所述映射表中的所述空闲页记录于所述空闲页位图中,并对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
19.一种释放物理内存的装置,其特征在于,所述装置包括:
第一确定单元,用于确定扫描空闲页位图的扫描起点;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识;
第一扫描单元,用于按照预设扫描周期,从所述确定单元确定的所述扫描起点处扫描所述空闲页位图;
获取单元,用于在所述第一扫描单元扫描所述空闲页位图过程中,从所述空闲页位图中获取预定数量的空闲页;
第二确定单元,用于确定所述获取单元获取的所述空闲页对应的页面号;
发送单元,用于将所述第二确定单元确定的所述空闲页对应的页面号发送至所述客户机对应的宿主机,以使得所述宿主机调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
第二扫描单元,用于扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
记录单元,用于根据所述页面号,将所述第二扫描单元扫描的所述映射表中的所述空闲页记录于所述空闲页位图中;
标记单元,用于对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
20.一种释放物理内存的方法,其特征在于,所述方法包括:
客户机确定扫描空闲页位图的扫描起点;其中,所述空闲页位图中的每一个比特位对应客户机内的一个物理内存页,且物理内存中的空闲页包含空闲状态标识;
按照预设扫描周期,从所述扫描起点处扫描所述空闲页位图;
从所述空闲页位图中获取预定数量的空闲页,并确定所述空闲页对应的页面号;
将所述空闲页对应的页面号发送至所述客户机对应的宿主机,以使得所述宿主机调用内存释放函数释放所述页面号对应的空闲页所占用的物理内存;
其中,生成空闲页位图包括:
扫描映射表,以查找空闲页,所述映射表用于记录客户机物理内存页的空闲状态与页面号之间的对应关系;
根据所述页面号,将所述映射表中的所述空闲页记录于所述空闲页位图中,并对客户机物理内存中空闲页的空闲状态进行标记,以生成所述空闲页位图。
CN201610973625.5A 2016-11-03 2016-11-03 释放物理内存的系统、装置及方法 Pending CN108021442A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610973625.5A CN108021442A (zh) 2016-11-03 2016-11-03 释放物理内存的系统、装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610973625.5A CN108021442A (zh) 2016-11-03 2016-11-03 释放物理内存的系统、装置及方法

Publications (1)

Publication Number Publication Date
CN108021442A true CN108021442A (zh) 2018-05-11

Family

ID=62083725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610973625.5A Pending CN108021442A (zh) 2016-11-03 2016-11-03 释放物理内存的系统、装置及方法

Country Status (1)

Country Link
CN (1) CN108021442A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928635A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 工作集划分方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101676906A (zh) * 2008-09-18 2010-03-24 中兴通讯股份有限公司 一种利用位图对内存数据库空间进行管理的方法
CN101859279A (zh) * 2010-05-21 2010-10-13 北京星网锐捷网络技术有限公司 一种内存分配、释放方法及装置
US8135899B1 (en) * 2006-06-29 2012-03-13 Parallels IP Holdings GmbH Expansion of virtualized physical memory of virtual machine
US20130031292A1 (en) * 2011-07-28 2013-01-31 Henri Han Van Riel System and method for managing memory pages based on free page hints
CN103593298A (zh) * 2013-10-16 2014-02-19 北京航空航天大学 内存回收方法和装置
CN105740041A (zh) * 2016-01-04 2016-07-06 杭州华三通信技术有限公司 一种虚拟机在线迁移方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135899B1 (en) * 2006-06-29 2012-03-13 Parallels IP Holdings GmbH Expansion of virtualized physical memory of virtual machine
CN101676906A (zh) * 2008-09-18 2010-03-24 中兴通讯股份有限公司 一种利用位图对内存数据库空间进行管理的方法
CN101859279A (zh) * 2010-05-21 2010-10-13 北京星网锐捷网络技术有限公司 一种内存分配、释放方法及装置
US20130031292A1 (en) * 2011-07-28 2013-01-31 Henri Han Van Riel System and method for managing memory pages based on free page hints
CN103593298A (zh) * 2013-10-16 2014-02-19 北京航空航天大学 内存回收方法和装置
CN105740041A (zh) * 2016-01-04 2016-07-06 杭州华三通信技术有限公司 一种虚拟机在线迁移方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928635A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 工作集划分方法和系统
CN110928635B (zh) * 2018-09-19 2023-05-02 阿里巴巴集团控股有限公司 工作集划分方法和系统

Similar Documents

Publication Publication Date Title
US20230289661A1 (en) Root cause discovery engine
CN103380423B (zh) 用于私人云计算的系统和方法
US8112378B2 (en) Methods and systems for performing root cause analysis
CN103164268B (zh) 系统优化方法及装置
WO2012039053A1 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
CN109271343A (zh) 一种应用于键值存储系统中的数据合并方法和装置
US9696982B1 (en) Safe host deployment for a heterogeneous host fleet
CN104301572A (zh) 图像形成装置、服务器装置和控制其打印的方法
US9742929B2 (en) Identifying problematic printers by applying Markov chain model
CN113672375B (zh) 资源分配预测方法、装置、设备及存储介质
US20200034728A1 (en) Completing decision logic to avoid a side effect
CN109558159A (zh) 游戏中用户界面的更新方法和装置
Hillston et al. A simple time scale decomposition technique for stochastic process algebras
US20200401947A1 (en) Workload tenure prediction for capacity planning
CN108021442A (zh) 释放物理内存的系统、装置及方法
CN108604231B (zh) 镜像处理方法以及计算设备
JP2020035243A (ja) ストレージシステム及び記憶制御方法
CN115576565A (zh) 应用程序的部署方法、装置、电子设备及存储介质
CN106934555B (zh) 工作流的组织方法及装置、计算机设备及存储介质
US11855849B1 (en) Artificial intelligence based self-organizing event-action management system for large-scale networks
JP6688433B2 (ja) 計算機システム
CN117332881B (zh) 分布式训练方法及电子设备
US20240231906A1 (en) Distributed Computing Topology with Energy Savings
JP5580754B2 (ja) 排他制御装置および排他制御方法
US20240201979A1 (en) Updating Running Containers without Rebuilding Container Images

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1255179

Country of ref document: HK

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180511