鱼与自行车的赛跑:Hyper-V动态内存和VMware内存过量使用谁更好?

日期:2011-7-28作者:Mike Laverick

【TechTarget中国原创】

动态内存(Dynamic memory)是微软应对虚拟化中常见问题所做的努力:如何有效地分配内存给不是一直需要它的虚拟机。

  内存一直是人们最先耗尽的关键资源。结果是,缺少内存会是固结率低的起源。压力还来自于某些应用所有人,他们为应用索要尽可能多的内存,即使是没有必要分配他们需要的内存量。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Mike Laverick
Mike Laverick

A professional instructor with over 15 years of experience in technologies such as Novell, Windows and Citrix.

Windows服务器虚拟化与Hyper-V>更多

相关推荐

技术手册>更多

  • 2012年十佳Windows技巧

    2012年对桌面管理员来说是有趣的一年。微软高调发布了一系列新产品。从Windows 8和Office 2013到Winodws存储应用和Windows平板电脑,这些都是2012年很受欢迎的Windows技巧。这里我们盘点了2012年的最佳十大Windows技巧。

  • VMware存储管理

    随着VMware陆续推出新产品,越来越多的虚拟化管理更加关注在虚拟架构里的存储问题。虚拟化存储有哪些选择?如何提高存储效率?在配置存储的时候应该注意哪些事项?

  • 学习使用PowerConvert

    Novell推出PlateSpin PowerConvert Version 7.0版本,新增备份与恢复功能,并扩充对多重平台的支持。那么如何安装PlateSpin PowerConvert?如何在具体环境中使用迁移和恢复功能?

  • 虚拟化部署的隐藏成本分析

    我们都知道虚拟化可以节省成本,但尽管虚拟化带来了大量优点和特性,但重要的是要记住虚拟化技术并不是万能的,并且在某些情形和环境中并不适合使用该技术。虚拟化技术确实存在一些缺陷,虽然这些缺陷未必对系统构成危害,但是用户需要在使用虚拟化技术之前意识到这些缺陷。

TechTarget

最新资源
  • 安全
  • 存储
  • 虚拟化
  • 网络
  • 数据中心
  • 云计算
【TechTarget中国原创】

动态内存(Dynamic memory)是微软应对虚拟化中常见问题所做的努力:如何有效地分配内存给不是一直需要它的虚拟机。

  内存一直是人们最先耗尽的关键资源。结果是,缺少内存会是固结率低的起源。压力还来自于某些应用所有人,他们为应用索要尽可能多的内存,即使是没有必要分配他们需要的内存量。

  在理想世界中,用户能分配大量内存并在需要使用这些内存时按需使用它们。有时候Hyper-V的情况并不如此:如果在虚拟机启动时给它分配4GB内存,不管它需不需要,它占有这4GB的内存,在VM关闭之前它不会把内存返还给Hyper-V。这不可避免地会导致固结率低于微软的竞争者,这也让它很难以有效的方式分配内存。

  随着Hyper-V R2 SP1的发布,微软添加了动态内存支持,这和它主要的竞争产品VMware ESX中利用的内存过量使用(memory over-commitment)非常不一样。微软长时间声称,虚拟机承担的内存超过物理量很危险,因为所有这些虚拟机也许同时需要分配。不管这是否是真实情况,我们一般在其它IT领域使用超额认购(over-subscription),如存储,微软的立场在微软社区得到应用。

  动态内存本质上平衡了来宾操作系统的管理系统功能来达成其目的。它主要依赖于大部分现代服务器和操作系统的容量来实现实时的内存添加和移除。动态内存背负该功能,允许Hyper-V在虚拟机运行时在其上添加或移除内存。一旦服务器启动,Hyper-V显示一池免费内存。虚拟机都是从这个池中分配内存。如果Hyper-V主机本身需要更多内存,也可以用恰好相同的方式增加。动态内存和内存过量使用不同,因为Hyper-V会拒绝保证超过池中可用的物理内存。通过从来宾操作系统中平衡热添加和热移除功能来保证内存从虚拟机返回到系统。让我们来看看动态内存评价该方法功绩的要求。

  首先,Hyper-V和现有的Windows虚拟机必须有应用其上的SP1。新版的Windows 7和Windows 2008 R2可能已经安装好了服务包。

  另外,Hyper-V可以在每虚拟机的基础上完成,所有虚拟机都默认地与静态内存模式一致。

动态内存,Hyper-V动态内存,Dynamic memory
图1:VM内存分配

  虚拟机都分配到启动量的内存用于启动程序。由于动态内存有赖于负载在来宾操作系统上的服务和驱动,需要一次只用于启动程序(图1)的内存分配。这是个自相矛盾的问题,在OS启动前没有动态内在,但是启动OS又需要内存。大部分人建议,用户分配大量启动内在来满足启动OS和用于它们正常运作的应用程序,留下动态内在来处理“爆发”需求。微软官方的说法是,用户只需分配足够的启动内存来满足OS的需求。

  虚拟机必须设置最大的内存量,这为虚拟机可以从池中获得的内存量设了限制。最大的这个值可能是64GB。

  最后,用户可以配置一个“内存缓冲区”,这是基于虚拟机承担量的额外分配。这个缓冲区是用来抵消所有由动态内存自身分配和向下分配程序引起的所有过量。所以实际的内存分配是承担内存加上这个内存缓冲。

  这个缓冲默认是20%,所以如果一个虚拟机限额是16GB,且使用4GB的内存,那么要分配大概820MB(4GB的20%或总共4.8GB)。随着虚拟机内的内存需求增长,缓冲适当增长,直到到达配置最大量。如果从内存角度Hyper-V主机变得饱和,可以牺牲该缓冲,而主机可以首先为承担的内存需求服务。缓冲用作一般的缓存来提高性能,即使动态内存并没有施压要完成该工作。

  有人会说,这个缓冲只不过是为了动态内存的执行添加了20%的内存,而其他人则认为该功能提供了附加的管理能力,所以额外的内存也是值得的。记住,动态内在只在某些受支持的来宾系统上工作。它们在完全由管理程序控制的内存管理解决方案中有一些优势,因为它们为运行在大部分企业数据中心的一般范围的操作系统提供更好的兼容性。

  如果配置内存的IT管理员不能正确地监控或管理它们,所有内存管理方法都用不到,就有性能降低的可能。重要的事情是理解该模式的好处,并采取正确的行为来监控它们,用专用的警示来引导管理员采取步骤在他们生根之前避免问题。