CN109002347B - 一种虚拟机内存分配方法、装置及系统 - Google Patents
一种虚拟机内存分配方法、装置及系统 Download PDFInfo
- Publication number
- CN109002347B CN109002347B CN201810832114.0A CN201810832114A CN109002347B CN 109002347 B CN109002347 B CN 109002347B CN 201810832114 A CN201810832114 A CN 201810832114A CN 109002347 B CN109002347 B CN 109002347B
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual machine
- unallocated
- swap
- pool
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000005192 partition Methods 0.000 claims description 28
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
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 Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了一种虚拟机内存分配方法、装置及系统,所述方法包括轮询查询所述物理机上所有虚拟机的内存使用状态;当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池;当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用。采用本申请实施例所提供的技术方案,使用物理机内存过载和虚拟机内存回收机制,有效的提高了物理机的内存使用率,增加了集群整体的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟机内存分配方法、装置及系统。
背景技术
虚拟化是一种能够充分利用物理资源,通过互联网实现资源共享的物理模型。通过虚拟化技术可以对资源进行动态分配,实现按需的资源与服务。虚拟机(VirtualMachine,VM)是利用虚拟化技术模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机是云计算平台,以及计算机硬件复用的基础,多台虚拟机可以并发运行在同一台物理机上,增加物理机的使用率。
传统的虚拟机部署在物理机上的方式,是根据物理机的资源情况进行部署。例如物理主机有16G内存,预留出1G内存用于物理主机本身操作系统的运行,其余15G可供虚拟机应用。假设一个虚拟机使用1.5G内存,则最多可以创建并运行10个同等规模的虚拟机。由于虚拟机内存并不一定是在使用中,真实的运行场景中,可能会有大部分内存空间闲置,造成资源的浪费。
发明内容
本申请实施例中提供了一种虚拟机内存分配方法、装置及系统,以解决现有技术中物理机内存空间浪费的问题。
第一方面,本申请实施例提供了一种虚拟机内存分配方法,物理机上配置有未分配资源池,所述方法包括:
轮询查询所述物理机上所有虚拟机的内存使用状态;
当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池;
当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用。
优选地,所述物理机上还配置有交换分区swap,所述当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用,包括:
当任一虚拟机进行内存操作时,若所述未分配内存池中存在未分配内存,则将所述未分配内存分配给所述虚拟机使用;
若所述未分配内存池中不存在未分配内存,则将所述交换分区swap中的内存分配给所述虚拟机使用。
优选地,所述交换分区swap中的内存用于存储调用频率低于预设频率阈值的数据。
优选地,所述物理机的内存过载系数k∈(1.2,2.0),其中,k=(a+b)/a,a为所述物理机的内存空间,b为交换分区swap的内存空间。
第二方面,本申请实施例提供了一种虚拟机内存分配装置,物理机上配置有未分配资源池,所述装置包括:
查询模块,用于轮询查询所述物理机上所有虚拟机的内存使用状态;
释放模块,用于当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池;
分配模块,用于当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用。
优选地,所述物理机上还配置有交换分区swap,所述分配模块,具体用于:
当任一虚拟机进行内存操作时,若所述未分配内存池中存在未分配内存,则将所述未分配内存分配给所述虚拟机使用;
若所述未分配内存池中不存在未分配内存,则将所述交换分区swap中的内存分配给所述虚拟机使用。
优选地,所述交换分区swap中的内存用于存储调用频率低于预设频率阈值的数据。
优选地,所述物理机的内存过载系数k∈(1.2,2.0),其中,k=(a+b)/a,a为所述物理机的内存空间,b为交换分区swap的内存空间。
第三方面,本申请实施例提供了一种虚拟化系统,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面任一项所述的方法。
采用本申请实施例所提供的技术方案,使用物理机内存过载和虚拟机内存回收机制,有效的提高了物理机的内存使用率,增加了集群整体的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种虚拟机内存分配方法流程示意图;
图2为本申请实施例提供的一种虚拟机内存分配装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面首先对本申请实施例涉及的概念进行简单说明。
VM(virtual machine),虚拟机;
VMM(virtual machine monitor),虚拟机管理器;
KVM(Kernel-based Virtual Machine),一种开源的虚拟机技术;
Swap,交换分区。
为了提供物理机的内存使用率,本申请实施例在物理机上配置有未分配资源池,用于对物理机的内存进行复用,图1为本申请实施例提供的一种虚拟机内存分配方法流程示意图,如图1所示,其主要包括以下步骤。
步骤S101:轮询查询所述物理机上所有虚拟机的内存使用状态。
具体实现中,在虚拟机中安装virtio驱动,此驱动用于打开虚拟机中的端口,可以使VMM(虚拟机管理器)通过此端口查询虚拟机的实际使用情况,也可以使用此端口和虚拟机进行通讯。
步骤S102:当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池。
假如查询到第一虚拟机上存在未使用的内存块,则将该未使用的内存块释放到未分配内存池中,之后,该未使用的内存块可以被其它虚拟机调用,实现内存的复用,避免内存浪费。
步骤S103:当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用。
如果所述物理机上还配置有交换分区swap,那么所述当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用,具体包括:
当任一虚拟机进行内存操作时,若所述未分配内存池中存在未分配内存,则将所述未分配内存分配给所述虚拟机使用;若所述未分配内存池中不存在未分配内存,则将所述交换分区swap中的内存分配给所述虚拟机使用。
也就是说,在优先使用物理机的真实内存,待真实内存用完后,在使用交换分区swap中的内存。
在一种优选实施例中,所述交换分区swap中的内存用于存储调用频率低于预设频率阈值的数据。
由于交换分区swap内存的读写速率要低于实际内存,因此该方式可以最大限度的提高物理机的内存使用率。
在一种优选实施例中,所述物理机的内存过载系数k∈(1.2,2.0),其中,k=(a+b)/a,a为所述物理机的内存空间,b为交换分区swap的内存空间。
假设物理机内存为16G,过载系数为1.5,不考虑物理机本身所用内存,则可为虚拟机分配的内存为16*1.5=24G。多余的8G内存使用swap的形式进行分配。在实际使用中,由于swap分区内存的读写速率要低于实际内存,所以内存过载的系数不能过高,否则会影响虚拟机的使用性能,推荐的系数为1.2到2.0,可以根据具体场景进行调整。
采用本申请实施例提供的方法,使用物理机内存过载和虚拟机内存回收机制,有效的提高了物理机的内存使用率,增加了集群整体的效率。
与上述实施例相对应,本申请实施例提供了一种虚拟机内存分配装置,物理机上配置有未分配资源池,图2为本申请实施例提供的一种虚拟机内存分配装置结构示意图,如图2所示,所述装置包括:
查询模块201,用于轮询查询所述物理机上所有虚拟机的内存使用状态;
释放模块202,用于当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池;
分配模块203,用于当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用。
在一种可选实施例中,所述物理机上还配置有交换分区swap,所述分配模块203,具体用于:
当任一虚拟机进行内存操作时,若所述未分配内存池中存在未分配内存,则将所述未分配内存分配给所述虚拟机使用;
若所述未分配内存池中不存在未分配内存,则将所述交换分区swap中的内存分配给所述虚拟机使用。
在一种可选实施例中,所述交换分区swap中的内存用于存储调用频率低于预设频率阈值的数据。
在一种可选实施例中,所述物理机的内存过载系数k∈(1.2,2.0),其中,k=(a+b)/a,a为所述物理机的内存空间,b为交换分区swap的内存空间。
采用本申请实施例提供的装置,使用主机内存过载和虚拟机内存回收机制,有效的提高了物理主机的内存使用率,增加了集群整体的效率。
与上述实施例相对应,本申请还提供了一种虚拟化系统。所述虚拟化系统可以包括:处理器、存储器及通信单元,这些组件通过一条或多条总线进行通信。
其中,所述通信单元,用于建立通信信道,从而使所述存储设备可以与其它设备进行通信。接收其他设备发送的用户数据或者向其他设备发送用户数据。
所述处理器,为存储设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器可以仅包括中央处理器(CentralProcessing Unit,简称CPU)。在本申请实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
所述存储器,用于存储处理器的执行指令,存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当存储器中的执行指令由处理器执行时,使得虚拟化系统能够执行上述方法实施例中的部分或全部步骤。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (5)
1.一种虚拟机内存分配方法,其特征在于,
物理机上配置有未分配资源池,所述方法包括:
轮询查询所述物理机上所有虚拟机的内存使用状态;
当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池;
当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用;
所述物理机上还配置有交换分区swap,所述当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用,包括:
当任一虚拟机进行内存操作时,若所述未分配内存池中存在未分配内存,则将所述未分配内存分配给所述虚拟机使用;
若所述未分配内存池中不存在未分配内存,则将所述交换分区swap中的内存分配给所述虚拟机使用;
所述物理机的内存过载系数k∈(1.2,2.0),其中,k=(a+b)/a,a为所述物理机的内存空间,b为交换分区swap的内存空间。
2.根据权利要求1所述的方法,其特征在于,
所述交换分区swap中的内存用于存储调用频率低于预设频率阈值的数据。
3.一种虚拟机内存分配装置,其特征在于,
物理机上配置有未分配资源池,所述装置包括:
查询模块,用于轮询查询所述物理机上所有虚拟机的内存使用状态;
释放模块,用于当查询到任一虚拟机上存在未使用的内存块时,将所述未使用的内存块释放至所述未分配内存池;
分配模块,用于当任一虚拟机进行内存操作时,将所述未分配内存池中的未分配内存分配给所述虚拟机使用;
所述物理机上还配置有交换分区swap,所述分配模块,具体用于:
当任一虚拟机进行内存操作时,若所述未分配内存池中存在未分配内存,则将所述未分配内存分配给所述虚拟机使用;
若所述未分配内存池中不存在未分配内存,则将所述交换分区swap中的内存分配给所述虚拟机使用;
所述物理机的内存过载系数k∈(1.2,2.0),其中,k=(a+b)/a,a为所述物理机的内存空间,b为交换分区swap的内存空间。
4.根据权利要求3所述的装置,其特征在于,
所述交换分区swap中的内存用于存储调用频率低于预设频率阈值的数据。
5.一种虚拟化系统,其特征在于,
包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832114.0A CN109002347B (zh) | 2018-07-26 | 2018-07-26 | 一种虚拟机内存分配方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832114.0A CN109002347B (zh) | 2018-07-26 | 2018-07-26 | 一种虚拟机内存分配方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109002347A CN109002347A (zh) | 2018-12-14 |
CN109002347B true CN109002347B (zh) | 2022-02-18 |
Family
ID=64597523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810832114.0A Active CN109002347B (zh) | 2018-07-26 | 2018-07-26 | 一种虚拟机内存分配方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002347B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915151A (zh) * | 2015-06-02 | 2015-09-16 | 杭州电子科技大学 | 多虚拟机系统中一种主动共享的内存超量分配方法 |
CN105278880A (zh) * | 2015-10-19 | 2016-01-27 | 浪潮电子信息产业股份有限公司 | 一种基于云计算虚拟化的内存优化装置和方法 |
CN106569745A (zh) * | 2016-10-25 | 2017-04-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化系统 |
CN106874121A (zh) * | 2017-03-01 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种虚拟机内存回收方法及装置 |
CN108243118A (zh) * | 2016-12-27 | 2018-07-03 | 华为技术有限公司 | 转发报文的方法和物理主机 |
-
2018
- 2018-07-26 CN CN201810832114.0A patent/CN109002347B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915151A (zh) * | 2015-06-02 | 2015-09-16 | 杭州电子科技大学 | 多虚拟机系统中一种主动共享的内存超量分配方法 |
CN105278880A (zh) * | 2015-10-19 | 2016-01-27 | 浪潮电子信息产业股份有限公司 | 一种基于云计算虚拟化的内存优化装置和方法 |
CN106569745A (zh) * | 2016-10-25 | 2017-04-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化系统 |
CN108243118A (zh) * | 2016-12-27 | 2018-07-03 | 华为技术有限公司 | 转发报文的方法和物理主机 |
CN106874121A (zh) * | 2017-03-01 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种虚拟机内存回收方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109002347A (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
EP2867772B1 (en) | Dynamic resource allocation for virtual machines | |
JP5689526B2 (ja) | マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ | |
US11301303B2 (en) | Resource pool processing to determine to create new virtual resource pools and storage devices based on currebt pools and devices not meeting SLA requirements | |
US7971203B2 (en) | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another | |
WO2015196931A1 (zh) | 基于磁盘io的虚拟资源分配方法及装置 | |
US20150207678A1 (en) | Method and Apparatus for Managing Physical Network Interface Card, and Physical Host | |
US11579908B2 (en) | Containerized workload scheduling | |
CN108064377B (zh) | 一种多系统共享内存的管理方法及装置 | |
US20170286142A1 (en) | Technologies for Dynamically Allocating Hardware Acceleration Units to Process Data Packets | |
EP2839373A1 (en) | Virtual computing resource orchestration | |
CN107766145B (zh) | 双系统下的内存管理方法和装置 | |
US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
CN110752937B (zh) | 一种物理功能复用方法、装置和计算机存储介质 | |
EP3358795B1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization (nfv) network | |
US9755986B1 (en) | Techniques for tightly-integrating an enterprise storage array into a distributed virtualized computing environment | |
US9471368B2 (en) | Sharing resources allocated to an entitled virtual machine | |
CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
EP4273704A2 (en) | Techniques to support a holistic view of cache class of service for a processor cache | |
CN106775925B (zh) | 一种虚拟机cpu的限额处理方法和装置 | |
CN109002347B (zh) | 一种虚拟机内存分配方法、装置及系统 | |
CN107766122B (zh) | 一种宿主机的可用内存空间设置方法和装置 | |
CN108920249A (zh) | 一种基于多主机多虚拟机系统的限速方法 | |
CN111580935A (zh) | 一种网络通信方法、装置、设备及存储介质 | |
CN111124890A (zh) | 一种分布式数据库性能测试方法、系统、终端及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |