CN110399205A - 一种基于状态感知的虚拟机内存动态调节方法 - Google Patents
一种基于状态感知的虚拟机内存动态调节方法 Download PDFInfo
- Publication number
- CN110399205A CN110399205A CN201910690018.1A CN201910690018A CN110399205A CN 110399205 A CN110399205 A CN 110399205A CN 201910690018 A CN201910690018 A CN 201910690018A CN 110399205 A CN110399205 A CN 110399205A
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual machine
- recycling
- state
- performance
- 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.)
- Granted
Links
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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于状态感知的虚拟机内存动态调节方法,特征是包含主机虚拟机元数据记录、虚拟机状态评估、回收虚拟机内存和根据虚拟机性能反馈进行内存重分配等步骤。一方面,由于回收内存时,根据状态指标识别虚拟机的内存需求状态,区分虚拟机的内存敏感程度,所以本方法既能使虚拟机之间的性能更均衡,又能保证单个虚拟机性能最优;另一方面,由于能感知虚拟机性能变化,并及时调整内存分配策略,所以本方法适用于虚拟机内存需求多变的场景。本发明的方法与传统方法相比,能感知虚拟机的内存和性能状态,适用于高密度且内存需求多变的虚拟化场景,既能使虚拟机之间的性能更均衡,又能保证单个虚拟机性能最优。
Description
技术领域
本发明属于计算机内存管理技术领域,具体涉及在虚拟化环境下,通过感知虚拟机的状态实现高效的虚拟机内存动态调节方法。
背景技术
2002年,VMware公司在其论文《Memory resource management in VMware ESXserver》中提出了Ballooning内存动态调节技术,并将其应用在VMware的虚拟化产品之中。Ballooning技术可以从虚拟机中回收空闲内存以缓解主机的内存压力,达到内存超量分配的目的,该技术大大提高了服务器的内存利用率。在当今的云计算中,内存超量分配情况下虚拟机内存的动态管理一直是富有挑战性的课题,随着大数据发展和硬件规格的提高,单台物理机上的虚拟机密度不断增大,且数据密集型应用的种类越来越多,传统的Ballooning内存调节技术一方面无法区分多样化的应用类型,导致虚拟机之间性能不均衡,另一方面回收粒度较大,无法适应内存需求多变的场景,导致虚拟机内部应用性能降低。
发明内容
本发明的目的是提出一种基于状态感知的虚拟机内存动态调节方法,以克服现有技术的上述缺陷,从而达到多个虚拟机之间的性能均衡,降低内存调节对虚拟机内部应用性能的影响;同时,通用性好,实现简单,无需修改虚拟机/客户机层的代码,仅在主机层就可实现。
本发明基于状态感知的虚拟机内存动态调节方法,其特征在于包括以下步骤:
第一步:主机和虚拟机的元数据记录
通过操作系统周期性地获取主机的空闲内存量,若空闲内存量大于特定阈值,则该周期结束,否则,记录各虚拟机在特定时间段内的内存带宽B、物理内存占用量S和缺页次数P;
第二步:虚拟机状态评估
对于每个虚拟机VMi,根据第一步得到内存带宽Bi、物理内存占用量Si和缺页次数Pi,计算虚拟机内存状态指标Ri:
上面的公式1中,N是虚拟机的总个数,和分别是虚拟机VMi的内存带宽、物理内存占用量以及缺页次数与所有虚拟机总内存带宽、总物理内存占用量和总缺页次数的比值,fi是放大系数,它是大于等于1的浮点数,在对VMi执行内存回收之前,fi值为1,执行内存回收后更新fi的值,更新规则为“内存回收后缺页次数与回收前缺页次数的比值,若比值小于1,则取1”,内存回收后更新的fi将在下一个周期使用,若下一个周期主机内存充足,则将各虚拟机的fi都置为初始值1;根据公式1计算出的R值代表虚拟机的内存状态,R值越小代表虚拟机中应用的内存需求越小,反之则反;
第三步:回收虚拟机内存
将第二步得到的所有虚拟机的R值从小到大排序,并依次回收对应虚拟机的内存,直到主机空闲内存量大于特定阈值;对某个虚拟机执行内存回收时,采用带反馈的递进式回收方法,先回收其一小部分内存,再监测其性能反馈指标,若反馈指标超标,说明回收导致该虚拟机内部内存不足,则立即停止回收;若反馈指标正常,则增大回收力度继续回收;
第四步:根据虚拟机性能反馈进行内存重分配
对某个虚拟机执行回收后,监测其性能反馈指标,该指标通过磁盘读取/写入的数据量增长率即IO增长率和缺页次数两个参数反映;若其IO增长率大于1,或缺页次数大于特定阈值,则立即执行内存重分配,停止对其回收并增大其可用内存空间;若IO增长率小于1且缺页次数小于阈值,则保持当前回收状态。
上述本发明基于状态感知的虚拟机内存动态调节方法,包含主机虚拟机元数据记录、虚拟机状态评估、回收虚拟机内存和根据虚拟机性能反馈进行内存重分配等步骤。首先,由于本发明动态调节方法无需修改虚拟机代码,在主机层次即可实现,所以实现起来比较简单;并且由于回收内存时,根据状态指标识别虚拟机的内存需求状态,区分虚拟机的内存敏感程度,所以本发明方法既能使虚拟机之间的性能更均衡,又能保证单个虚拟机性能最优;最后,由于能感知虚拟机性能变化,并及时调整内存分配策略,所以本方法适用虚拟机内存需求多变的场景。本发明方法与传统方法相比,能感知虚拟机的内存和性能状态,适用于高密度且内存需求多变的虚拟化场景,既能使虚拟机之间的性能更均衡,又能保证单个虚拟机性能最优。
附图说明
图1是本发明基于状态感知的虚拟机内存动态调节方法的操作流程示意图。
图2为虚拟机初始状态示意图。
图3表示执行内存回收后的虚拟机内存状态示意图。
图4表示执行内存回收后的虚拟机性能状态示意图
图5表示执行内存重分配后的虚拟机内存状态示意图。
具体实施方式
下面结合附图通过具体实施例对本发明基于状态感知的虚拟机内存动态调节方法作进一步的详细说明。
实施例1:
本实施例基于状态感知的虚拟机内存动态调节方法,是在一台主机上同时运行3个虚拟机(VM1、VM2、VM3),主机物理内存24G,每个虚拟机内存地址空间16G,即虚拟地址空间16G,虚拟机内部运行各自的应用程序,由于内存是超量分配的,所以主机会出现内存不足,需要动态调节各虚拟机的内存,减少磁盘交换分区的占用,提高内存利用率。
附图1是本实施例基于状态感知的虚拟机内存动态调节方法的操作流程示意图。
本实施例基于状态感知的虚拟机内存动态调节方法,具体包括以下步骤:
第一步:主机和虚拟机的元数据记录
图2为虚拟机初始状态示意图。图2中表示当前各虚拟机VM1、VM2、VM3的可用内存空间A1、A2、A3均为16GB,当前占用的物理内存空间S1、S2、S3分别为10、6、8(单位GB);主机空闲内存的阈值设为主机总物理内存的4%,即24GB*4%≈1GB.此时主机空闲内存量为0,低于阈值,触发动态内存调节;
首先记录主机和虚拟机的元数据(参见图1中的流程操作框①),得到的元数据结果如图2中所示:虚拟机VM1、VM2、VM3的内存带宽B1、B2、B3分别为2、1、2(单位MB/s),缺页次数P1、P2、P3分别为10、10、20,由于尚未执行内存回收,所以放大系数f1、f2、f3均为初始值1;将此时每个虚拟机的缺页次数作为各自的阈值,该阈值是内存回收后评判虚拟机性能是否下降的标准;
第二步:虚拟机状态评估
根据第一步得到的元数据,使用
计算各虚拟机的状态指标值R(参见图1中的流程操作框②),计算结果如图2中所示:虚拟机VM1、VM2、VM3的状态指标R1、R2、R3分别为0.23、0.20、0.57;
第三步:回收虚拟机内存
由于此时主机空闲内存为0,阈值为1GB,所以需要从虚拟机中回收1GB内存;每个虚拟机先回收其当前物理内存占用量的10%,根据R值由小到大的顺序依次回收,直到达到回收目标停止(参见图1中的流程操作框③);首先从VM2中回收6GB*10%=600MB,接着从VM1中回收10GB*10%=1GB,此时已经完成回收目标1GB,所以VM3无需回收;回收后各虚拟机的内存状态如图3中所示:VM1、VM2、VM3的可用内存空间A1、A2、A3分别为9、5.4、16(单位GB),当前占用的物理内存空间S1、S2、S3分别为9、5.4、8(单位GB);
第四步:根据虚拟机性能反馈进行内存重分配
监测一段时间内被回收内存的虚拟机VM1、VM2的性能指标变化(参见图1中的流程操作框④),监测指标为缺页次数P、磁盘读取数据量的增长率D、磁盘写入的数据量增长率W,监测结果执行内存回收后的虚拟机性能状态如图4中所示:
虚拟机VM1的缺页次数P1为30,超过其阈值10(该阈值是在第一步未进行内存回收时,监测虚拟机状态得到的),磁盘数据读取增长率D1为0,磁盘数据写入增长率W1为2,大于阈值1,说明此时写入磁盘的数据量比之前大幅增加;VM1满足缺页次数增加或磁盘数据读取/写入增长率大于1任一个条件,说明内存回收导致其内部内存不足,若后续内存请求不能及时得到满足,虚拟机VM1性能将会下降;虚拟机VM2的缺页次数P2为5,低于其阈值10,磁盘数据读取增长率D2为0.5,磁盘数据写入增长率W2为0,均不超过阈值1,说明内存回收未影响虚拟机VM2的正常运行;虚拟机VM3的内存在第三步中没有被回收,因此无需关注其状态变化;另外,由于内存回收后缺页次数发生变化,所以更新公式1中各虚拟机的放大系数f,f的计算规则为“回收后缺页次数与回收前缺页次数的比值,若比值小于1,则取1”,更新后的f1=3、f2=1、f3=1.25(如图4);更新后的f值将在下一个周期使用,若下一个周期主机内存充足,无需从虚拟机回收内存,则将每个虚拟机的f值都置为初始值1;
对于虚拟机VM1,由于内存回收导致其内部内存不足,所以立即执行内存重分配,停止对VM1回收并增大其可用内存空间(参见图1中的流程操作框⑤),这样VM1后续的内存请求就会得到主机响应,以使其性能不会因内存回收而明显下降;内存重分配后各虚拟机内存状态如图5中所示:VM1的可用内存空间A1增加为16GB,其他虚拟机由于性能未受影响,所以内存状态不变。
在本实施例中,采用基于状态感知的虚拟机内存动态调节方法,一方面,根据内存状态指标R能准确感知虚拟机的内存状态,区分虚拟机对内存的敏感程度,使得本发明方法能处理应用种类多样化的场景,且既保证多个虚拟机之间的性能更均衡,又保证单个虚拟机性能最优;另一方面,在内存需求多变的场景下,带反馈的递进式回收方式能感知虚拟机性能变化,及时调整内存分配策略,保证了虚拟机内的应用性能不会因内存调节而下降。
Claims (1)
1.一种基于状态感知的虚拟机内存动态调节方法,其特征在于包括以下步骤:
第一步:主机和虚拟机的元数据记录
通过操作系统周期性地获取主机的空闲内存量,若空闲内存量大于特定阈值,则该周期结束,否则,记录各虚拟机在特定时间段内的内存带宽B、物理内存占用量S和缺页次数P;
第二步:虚拟机状态评估
对于每个虚拟机VMi,根据第一步得到内存带宽Bi、物理内存占用量Si和缺页次数Pi,计算虚拟机内存状态指标Ri:
上面的公式1中,N是虚拟机的总个数,和分别是虚拟机VMi的内存带宽、物理内存占用量以及缺页次数与所有虚拟机总内存带宽、总物理内存占用量和总缺页次数的比值,fi是放大系数,它是大于等于1的浮点数,在对VMi执行内存回收之前,fi值为1,执行内存回收后更新fi的值,更新规则为“内存回收后缺页次数与回收前缺页次数的比值,若比值小于1,则取1”,内存回收后更新的fi将在下一个周期使用,若下一个周期主机内存充足,则将各虚拟机的fi都置为初始值1;根据公式1计算出的R值代表虚拟机的内存状态,R值越小代表虚拟机中应用的内存需求越小,反之则反;
第三步:回收虚拟机内存
将第二步得到的所有虚拟机的R值从小到大排序,并依次回收对应虚拟机的内存,直到主机空闲内存量大于特定阈值;对某个虚拟机执行内存回收时,采用带反馈的递进式回收方法,先回收其一小部分内存,再监测其性能反馈指标,若反馈指标超标,说明回收导致该虚拟机内部内存不足,则立即停止回收;若反馈指标正常,则增大回收力度继续回收;
第四步:根据虚拟机性能反馈进行内存重分配
对某个虚拟机执行回收后,监测其性能反馈指标,该指标通过磁盘读取/写入的数据量增长率即IO增长率和缺页次数两个参数反映;若其IO增长率大于1,或缺页次数大于特定阈值,则立即执行内存重分配,停止对其回收并增大其可用内存空间;若IO增长率小于1且缺页次数小于阈值,则保持当前回收状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910690018.1A CN110399205B (zh) | 2019-07-29 | 2019-07-29 | 一种基于状态感知的虚拟机内存动态调节方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910690018.1A CN110399205B (zh) | 2019-07-29 | 2019-07-29 | 一种基于状态感知的虚拟机内存动态调节方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399205A true CN110399205A (zh) | 2019-11-01 |
CN110399205B CN110399205B (zh) | 2022-09-06 |
Family
ID=68326369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910690018.1A Active CN110399205B (zh) | 2019-07-29 | 2019-07-29 | 一种基于状态感知的虚拟机内存动态调节方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399205B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192870A (zh) * | 2023-04-21 | 2023-05-30 | 中国科学技术大学 | 基于镜像级元数据管理和负载感知的p2p下载镜像方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120290765A1 (en) * | 2011-05-12 | 2012-11-15 | Citrix Systems, Inc. | Reclaiming memory pages in a computing system hosting a set of virtual machines |
CN103257929A (zh) * | 2013-04-18 | 2013-08-21 | 中国科学院计算技术研究所 | 一种虚拟机内存映射方法及系统 |
CN107168766A (zh) * | 2016-03-08 | 2017-09-15 | 深圳市深信服电子科技有限公司 | 虚拟机内存管理方法和装置、虚拟机管理器 |
-
2019
- 2019-07-29 CN CN201910690018.1A patent/CN110399205B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120290765A1 (en) * | 2011-05-12 | 2012-11-15 | Citrix Systems, Inc. | Reclaiming memory pages in a computing system hosting a set of virtual machines |
CN103257929A (zh) * | 2013-04-18 | 2013-08-21 | 中国科学院计算技术研究所 | 一种虚拟机内存映射方法及系统 |
CN107168766A (zh) * | 2016-03-08 | 2017-09-15 | 深圳市深信服电子科技有限公司 | 虚拟机内存管理方法和装置、虚拟机管理器 |
Non-Patent Citations (5)
Title |
---|
CARL A. WALDSPURGER: "Memory resource management in VMware ESX server", 《ACM SIGOPS OPERATING SYSTEMS REVIEW》 * |
WEIMING ZHAO: "Dynamic memory balancing for virtual machines", 《PROCEEDINGS OF THE 2009 ACM SIGPLAN/SIGOPS INTERNATIONAL CONFERENCE ON VIRTUAL EXECUTION ENVIRONMENTS》 * |
YONGKUN LI: "A Hierarchical RAID Architecture Towards Fast Recovery and High Reliability", 《 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
李一平等: "基于平均负载和空闲内存税率的虚拟机内存优化", 《陕西理工学院学报(自然科学版)》 * |
杜炜: "KVM客户机主动共享的内存超量使用策略研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192870A (zh) * | 2023-04-21 | 2023-05-30 | 中国科学技术大学 | 基于镜像级元数据管理和负载感知的p2p下载镜像方法 |
CN116192870B (zh) * | 2023-04-21 | 2023-07-11 | 中国科学技术大学 | 基于镜像级元数据管理和负载感知的p2p下载镜像方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110399205B (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102380670B1 (ko) | 메모리 제어기에서의 세분화된 대역폭 프로비저닝 | |
US9817606B1 (en) | System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment | |
US9552230B2 (en) | Apparatus and method for allocating a task based on measured and estimated core usage | |
CN102508787B (zh) | 混合结构内存的内存分配系统及方法 | |
CN107968810B (zh) | 一种服务器集群的资源调度方法、装置和系统 | |
CN110413412B (zh) | 一种基于gpu集群资源分配的方法和装置 | |
CN106843755A (zh) | 用于服务器集群的数据均衡方法与装置 | |
Dory et al. | Measuring elasticity for cloud databases | |
CN104461914A (zh) | 一种自动精简配置的自适应优化方法 | |
CN106933495B (zh) | 一种数据读取方法、raid控制器及存储设备 | |
CN105843687A (zh) | 一种任务资源的量化方法和装置 | |
CN112131164B (zh) | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 | |
CN102521014A (zh) | 虚拟机的部署方法及装置 | |
CN103631537A (zh) | 一种虚拟磁盘的管理方法及装置 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
CN103685542A (zh) | 云虚拟机迁移方法、装置和系统 | |
CN114064588B (zh) | 存储空间调度方法及系统 | |
CN107506145A (zh) | 一种物理存储调度方法及云主机创建方法 | |
CN110399205A (zh) | 一种基于状态感知的虚拟机内存动态调节方法 | |
IL301738A (en) | Predictive block storage size allocation for cloud storage | |
CN109766179A (zh) | 一种显存分配方法以及装置 | |
US10007559B1 (en) | Virtual tiering | |
CN103077055B (zh) | pNFS系统支持海量虚拟机在线启动运行的方法 | |
CN107451920A (zh) | 计算服务器、动态收益处理方法及存储介质 | |
US11016816B1 (en) | Compute capacity allocation based on multi-factor analysis |
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 |