Hyper-V Server内存技术

简介:

内存分配给虚拟机之后,Hyper-V主机把系统可用内存资源分配给创建之后的虚拟机,默认的内存我们称之为静态内存,即当你创建虚拟机时你给多少G内存那么虚拟机就分配多少G内存,Windows Server 2012/R2 Hyper-V提供的动态内存功能,管理员可以重新调整资源,让有限的内存资源能够得到充分利用,以便达到更好的内存整合和更高的管理效率。

一:静态内存:即分配给虚拟机的内存。虚拟机没有启动的时候,不会占用物理计算机内存,虚拟机启动时,将从物理计算机内存中划分出指定大小的内存给虚拟机使用,物理计算机将减少同样大小的内存。

image

二:动态内存:

(一) 技术概述:在 Windows Server 2008 R2 Service Pack 1 (SP1) 中引入的“动态内存”,将启动内存定义为虚拟机的最低内存数量。但是,Windows 在启动过程中比在稳定状态中需要更多内存。因此,管理员有时会给虚拟机分配额外的内存,因为 Hyper-V 无法在启动后从这些虚拟机回收内存。在 Windows Server 2012/R2 中,“动态内存”引入了最低内存设置,从而允许 Hyper-V 从虚拟机回收未使用的内存。这反映在增加的虚拟机合并数量方面,尤其是在虚拟桌面基础结构 (VDI) 环境中。Windows Server 2012/R2 还引入了“智能分页”技术以获得可靠的虚拟机重新启动操作。虽然最低内存可以增加虚拟机的合并数量,但它也带来一项挑战。如果一台虚拟机具有比其启动内存更小数量的内存,如果它重新启动,则 Hyper-V 需要附加的内存才能重新启动虚拟机。由于主机内存压力或虚拟机状态的原因,Hyper-V 可能并不总是有附加内存可用。这可能偶尔会导致虚拟机重新启动失败。“智能分页”用于弥补最低内存和启动内存之间的差距,使得虚拟机能可靠地重新启动。

(二) 术语:

A. 内存过量:

1、什么是内存过量:内存过量使用允许虚拟机使用比物理主机可用的更多地内存,例如宿主机有2G内存,可以在其上运行4台拥有1G内存的虚拟机。内存过量使用时因为有比宿主机更多的虚拟内存,因此企业管理员能够最大化物理主机中虚拟机数量,而不用照顾物理内存总量的限制。如果没有这个技术,虚拟机内存大小最多只能和虚拟主机内存使用相同。在企业实际生产环境中虚拟机通常消耗的内存比需求的的要少,这样不利于充分利用硬件资源,并限制了在当前服务器上能运行的虚拟机数量。

2、Hyper-V不支持内存过量使用:Hyper-V不允许内存过量使用,例如如果分配4GB内存给Hyper-V的一台虚拟机,实际当启动这台虚拟机的时候只使用2GB内存,但是Hyper-V会检查是否有4GB的物理内存可用,如果有,以分配给这台虚拟机的4GB内存将会被锁定,只能用于这台虚拟机,如果4GB不可用则无法启动这台虚拟机,即使只需要2GB内存也依然无法启动这台虚拟机。

3、Hyper-V内存使用机制:Hyper-V通过提供“内存缓冲区”、“内存权重”以及“内存优先级”来允许根据内存使用率酉华虚拟机内存使用。当出现争用内存时,配置了高优先级的虚拟机首先获得内内存资源。Hyper-V管理器显示没太虚拟机的内存使用情况帮助管理员更好的管理内存分配。

B. 内存缓冲区:

1、什么事内存缓冲区:Hyper-V虚拟内存的基本设置,为每台虚拟机保留额外空间。内存缓冲区为虚拟机提供比实际需求更多地内存使用空间。虚拟机内存缓冲区使用百分比计算,默认为20%,微软缓冲区百分比范围为5%至95%。

2、内存缓冲区运行机制:

(1) 当内存需求在磨某一时间间隔突然增大时,可以使用保留区域,。在没有缓存情况下,这一时间间隔内突然增大的内存需求会迫使虚拟机进入内存溢出状态,这一状态下内存页面文件将被自动写入磁盘,数据从高速运行的内存空间中转移到相对极慢的磁盘上,会导致计算性能明显下降。

(2) 当内存需求发生改变时,额外保留的空间可以降低虚拟机吧内存数据写入磁盘的概率。同时,更大的缓存空间也带来了浪费。保留的内存区域总是处于可用状态,因此在虚拟机用到它之前都是闲置的。用户设置范围很大,微软缓冲区百分比范围为5%至95%,管理员可以设置任意数字。一般较为建议的是,开始的时候设置较低一些,当发现虚拟机总是发生写入磁盘的情况时对这一百分比进行调整。

C. 内存权重:

1、什么是内存权重:Hyper-V动态内存技术总是不断的平衡内存使用,但有时内存资源无法满足所有虚拟机的需求。如果启用过多的虚拟机,或者某台虚拟机运行某个应用程序时突然需要大量内存资源,当发生这种情况时,内存权重设置可以对虚拟机设置优先权分类。低优先级的虚拟机在高优先级虚拟机内存分配完之前无法获得内存资源。

2、内存权重的作用:

(1) 高优先级的虚拟机得到更多的内存;

(2) 低优先级的虚拟机会被优先“夺走”内存;

(3) 当启动一台“新”虚拟机时,所给予他的内存来源于已经运行的虚拟机占有的内存,具体分配多少,则要看启动虚拟机的内存权重的高低。

3、内存计算:

(1) 计算公式:虚拟机可用内存=启动内存+启动内存*(缓冲区百分比/(1-缓冲区百分比));

(2) 实例:管理员新建一台虚拟机,分配的内存大小为1200MB,缓冲区百分比为20%,则Hyper-V会附加额外的20%/(1-20%)=300MB,即总共1500MB内存给虚拟机。如果管理员设置的缓冲区百分比为80%,则会附加额外的80%/(1-80%)*1200MB=4800MB,即总共6000MB内存给虚拟机。

image

D. 智能分页:

Windows Server 2012/R2 还引入了“智能分页”技术以获得可靠的虚拟机重新启动操作。虽然最低内存可以增加虚拟机的合并数量,但它也带来一项挑战。如果一台虚拟机具有比其启动内存更小数量的内存,如果它重新启动,则 Hyper-V 需要附加的内存才能重新启动虚拟机。由于主机内存压力或虚拟机状态的原因,Hyper-V 可能并不总是有附加内存可用。这可能偶尔会导致虚拟机重新启动失败。“智能分页”用于弥补最低内存和启动内存之间的差距,使得虚拟机能可靠地重新启动。如果虚拟机配置了比启动内存更少的最低内存,为了提供可靠的重新启动操作,则 Hyper-V 会在 Windows Server 2012/R2 中使用“智能分页”。当重新启动虚拟机需要更多内存时,这种内存管理方法将使用磁盘资源作为附加的临时内存。这种方法既有优点,也有缺点。它提供了一种可靠的方法,在没有可用的物理内存时,仍可确保虚拟机正常运行。但是,它也会降低虚拟机的性能,因为磁盘访问速度比内存访问速度慢得多。

1、为了尽量减少“智能分页”对性能的影响,Hyper-V 只在如下情况下才使用它:

(1) 正在重新启动虚拟机时;

(2) 没有可用的物理内存时;

(3) 在主机上运行的其他虚拟机中没有可回收的内存时;

2、“智能分页”不能在以下情况下使用:

(1) 虚拟机正从“关闭状态”启动(而不是重新启动);

(2) 需要超额认购内存用于运行虚拟机时;

(3) 虚拟机正在 Hyper-V 群集中执行故障转移时

当主机内存被超额认购时,Hyper-V 在来宾操作系统中继续依靠分页操作,因为它比“智能分页”更有效。在来宾操作系统中,分页操作由 Windows 内存管理器来执行。Windows 内存管理器比 Hyper-V 主机掌握更多有关虚拟机内的内存使用信息,这意味在选择用于分页的内存时,Windows 内存管理器可以提供比 Hyper-V 更好的信息。正因如此,相比“智能分页”它会导致更少的系统开销。为进一步降低“智能分页”的影响,Hyper-V 将在完成启动之后从虚拟机中删除内存。为达到此目,它会在来宾操作系统中与“动态内存”组件进行协调(该过程有时也被称为“气球”(ballooning)),从而使虚拟机停止使用“智能分页”。利用这种技术,“智能分页”的使用只是暂时的,并且预计不会超过 10 分钟。需要注意:

(1) 只有在虚拟机需要时才会创建“智能分页”文件;

(2) 在删除附加数量的内存之后,系统还会删除“智能分页”文件;

(3) 直到下一次在没有足够物理内存的情况下需要重新启动虚拟机之前,它一直不能再次使用“智能分页”。

下图显示了使用 Hyper-V 智能分页进行重启的虚拟机的内存映射情况。

image

为了进一步降低 Hyper-V 智能分页的影响,在虚拟机启动完成之后,Hyper-V 会从虚拟机移除内存,与客户机内的动态内存组件协调(这个过程有时称为“膨胀”),因此虚拟机停止使用 Hyper-V 智能分页。在这项技术中,Hyper-V 智能分页的使用是临时的,不应超过 10 分钟。下图显示了 Hyper-V 在虚拟机完成启动之后,从虚拟机移除内存。

image

Windows Server 2012/R2开始对Hyper-V 动态内存的增强,有助于在增强 Hyper-V 操作可靠性的同时,实现更高的合并数量。可以不关闭虚拟机而修改虚拟机的内存配置。如果有空闲虚拟机或低负载虚拟机,例如在池化VDI 环境,Hyper-V 增加的动态内存可以用来提高合并量,并提高重启操作的可靠性。这可以降低客户的成本,尤其在有许多空闲或低负载虚拟机的池化环境中更是如此。利用对动态内存的运行时配置修改,可以减少停机时间、提高响应需求变化的敏捷性,从而带来整体的 IT 生产力提高。利用这些新功能,还实现了响应需求变化的敏捷性。



     本文转自 徐庭 51CTO博客,原文链接:http://blog.51cto.com/ericxuting/1587335,如需转载请自行联系原作者



目录
打赏
0
0
0
0
347
分享
相关文章
|
6月前
|
KVM的热添加技术之内存
文章介绍了KVM虚拟化技术中如何通过命令行调整虚拟机内存配置,包括调小和调大内存的步骤,以及一些相关的注意事项。
141 4
KVM的热添加技术之内存
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
146 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
6月前
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
操作系统中的内存管理技术
在数字世界的复杂架构中,操作系统扮演着枢纽的角色,其中内存管理作为其核心组件之一,保障了计算资源的高效利用与稳定运行。本文将深入探讨操作系统中内存管理的关键技术,包括虚拟内存、分页和分段机制,以及现代操作系统如何通过这些技术优化性能和提高系统稳定性。通过具体实例和数据分析,我们将揭示这些技术如何在实际应用中发挥作用,并讨论它们面临的挑战及未来发展方向。 【7月更文挑战第16天】
149 6
Android性能优化:内存管理与LeakCanary技术详解
【7月更文挑战第21天】内存管理是Android性能优化的关键部分,而LeakCanary则是进行内存泄漏检测和修复的强大工具。
操作系统中的内存管理技术解析
【7月更文挑战第13天】本文将深入探讨操作系统中至关重要的内存管理技术,包括虚拟内存、分页和分段机制等核心概念。我们将从内存管理的基本原理出发,逐步过渡到高级技术如交换空间和文件映射,最后讨论现代操作系统中内存管理面临的挑战与未来发展方向。文章旨在为读者提供对操作系统内存管理全面而深入的理解。
119 7
Java中的内存数据库与缓存技术
Java中的内存数据库与缓存技术
|
9月前
|
探索现代操作系统中的虚拟内存管理技术
在数字时代的浪潮中,操作系统的心脏——虚拟内存管理技术,正以它独有的韵律跳动。本文将带你穿梭于操作系统的迷宫,揭开虚拟内存如何巧妙地扩展有限的物理内存之谜。从分页机制的精妙设计到交换空间的策略运用,我们将一探究竟。你将看到,虚拟内存不仅仅是一个存储数据的地方,它是速度与效率的协调者,是多任务处理的幕后英雄。随着技术的演进,虚拟内存管理不断优化,为应用程序提供了一片更为广阔的运行天地。让我们一同走进这个充满智慧的世界,感受操作系统中虚拟内存管理的魅力所在。
78 1
操作系统中的内存管理:技术与挑战
在数字化时代,操作系统的内存管理成为计算机科学领域中一个至关重要的技术环节。本文将深入探讨现代操作系统中内存管理的基本原理、关键技术及其面临的挑战。通过对分页、分段、虚拟存储和缓存策略等核心概念的介绍,我们旨在揭示内存管理如何优化系统性能,保障数据安全,并提高资源利用率。同时,文章还将讨论内存泄漏、碎片化以及安全性问题等当前内存管理技术所面临的主要挑战。
117 0
Redis:内存数据存储与缓存系统的技术探索
**Redis 概述与最佳实践** Redis,全称Remote Dictionary Server,是流行的内存数据结构存储系统,常用于数据库、缓存和消息中介。它支持字符串、哈希、列表等数据结构,并具备持久化、主从复制、集群部署及发布/订阅功能。Redis适用于缓存系统、计数器、消息队列、分布式锁和实时系统等场景。最佳实践包括选择合适的数据结构、优化缓存策略、监控调优、主从复制与集群部署以及确保安全配置。
187 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等