免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3949 | 回复: 2
打印 上一主题 下一主题

技术分析Hyper-V Dynamic Memory与VMware内存过量使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-08 14:49 |只看该作者 |倒序浏览
许多管理员必须面对在环境中进行内存分配的复杂任务。不管组织是使用VMware vSphere还是Microsoft Hyper-V,从物理内存本身就限制了物理服务器能够宿主的虚拟机数量。但是Hyper-V Dynamic Memory和VMware的内存过量功能允许管理员最大化他们服务器上的虚拟机密度。

  内存过量使用能允许虚拟机使用比物理主机可用的更多的内存。比如,你的主机有2GB的内存,就可以在其上运行四台拥有1GB内存的虚拟机。内存能过量使用因为有比物理更多的虚拟内存。因此,管理员也能最大化主机服务器上能运行的虚拟机数量,而不用理会物理内存的限制。

  如果没有内存过量使用功能,分配给虚拟机内存的数量最多只能是机器可能需要的那么多。但实际上,虚拟机通常消耗的内存比其需要的少。这会浪费物理内存空间,并限制了在服务器上能运行的虚拟机数量。例如,如果你有一台8GB RAM的Hyper-V服务器,你可能在那台服务器上宿主三台虚拟机,每个分配2GB,并预留2GB给主机操作系统,虽然这台服务器有足够的CPU和磁盘资源来宿主更多虚拟机,但内存成为限制因素。

  Hyper-V Dynamic Memory里含有一个选项能解决这个问题,给机器“buffer(缓冲)”额外内存。但是VMware包括真实的内存过量使用功能。这两种内存分配方式都跨所有虚拟机提供动态内存分配。

  VMware的内存过量使用

  VMware提供内存过量使用有段时间了。这技术基于Idle Memory Tax(IMT),分配所“分享”内存的数量。要明白IMT是如何工作的,需要明白内存共享的概念。实质上,VMware将内存作为一个共享的资源,每兆字节的内存都当做一个独立体。因此,一台16GB RAM的服务器拥有16384的内存份额。IMT给未使用的内存分配更高的值。

  VMware内存过量的原理是使用从未使用内存份额的机器那获得内存,并分配这些份额给那些需要的虚拟机。这个过程动态发生,不需要管理员手动进行。主机每60秒检查份额使用率,并按需进行调整。同样,注意到ESX移除所有未使用的内存也很重要。虚拟机允许保留25%未使用的内存,以防突然需要更多的内存。

  假设有台服务器上的虚拟机每台拥有16GB RAM。如果一台机器是xchange 2010邮件服务器,它自己就需要16GB内存,但如果你的FTP服务器只需要1GB内存。我们假定我们给每台虚拟机分配了16GB的内存(加起来就是32GB)。

  FTP获得了16GB RAM,但只使用了1GB。因此还剩余15GB(15360个份额)。有了内存过量使用功能,VMware ESX允许虚拟机保留25%未使用的内存,但是移除75%,即1.25GB(11520个份额)。

  25%这个参数是可调节的,但VMware建议不要进行更改。使用VMware的动态方式使得内存过量使用更加容易分配内存。

  Hyper-V Dynamic Memory

  微软不允许内存过量分配,但它使用了一种不同的方法来进行动态内存分配。在Hyper-V Dynamic Memory出现在Hyper-V R2 Service Pack 1之前,管理员必须手动分配内存。

  假设你分配了4GB内存给Hyper-V的一台虚拟机,虚拟机实际只使用了2GB。但你启动虚拟机,Hyper-V检查是否有4GB的物理内存可用。如果这样的话,内存就被“锁定”,因此只能用于该虚拟机。如果4GB不可用,虚拟机就不能启动,即使虚拟服务器需要的2GB内存可用也不行。

  Hyper-V Dynamic Memory与VMware内存过量使用原理类似,都是从虚拟机那召回未使用的内存资源。主机在一秒之内动态分配内存。微软甚至让你配置虚拟内存设置来控制主机的内存分配行为。Dynamic Memory与VMware内存过量使用之间的区别在于微软积极鼓励用户设置他们自己的内存门槛。这样的话,管理员能在服务器上实现最大的虚拟机密度,同时达到最大化的性能。

  Hyper-V也提供缓冲,如同ESX预留25%未使用的内存作为缓冲,预防内存需要的突然增长。不同在于微软包括一个调节滑竿,因此管理员能控制每台虚拟机预留作为缓冲的额外空间参数。Hyper-V中预留的内存是主机总体可用内存的一部分,而VMware内存过量使用允许你分配比物理内存更多的内存。

  这两种功能另一个不同是Hyper-V管理员能设置虚拟机在开启时分配的内存,以及虚拟机能使用的最大数量内存。

  最后,微软允许根据内存使用率优化虚拟机。当出现争用内存的情况,高优先权虚拟机首先获得内存。在Hyper-V里监控虚拟机级别也很有必要,因为内存竞争会迫使虚拟机用光内存,如果虚拟机需要但又没有可用的内存。Manager Console报道每台虚拟机可用的内存,帮助你在Hyper-V上管理内存分配。

  选择内存分配方法

  内存过量使用通过增加物理服务器上的虚拟机数量来减低成本。这样的话,管理员必须注意过量使用资源的分配不能达到影响性能的临界点。

  那么你该使用何种方式?VMware和微软的内存过量使用功能类似,仅仅基于内存过量使用功能选择一款虚拟化平台是不明智的。实际上,两种虚拟化平台交付的性能都差不多。因此,我建议你继续使用你目前的平台。转换平台获得的利益(至少从内存过量使用方面),可能不值得你在转换期间花费的成本。

  Hyper-V和VMware内存分配真正的不同在于微软提供了额外的设置,自定义启动RAM、最大化RAM和对虚拟机进行优先级选择。这些选项都使得在虚拟环境中进行更加精确的内存分配。

论坛徽章:
0
2 [报告]
发表于 2010-11-10 08:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2010-11-10 10:01 |只看该作者
回复 youngcow 的帖子

楼上对内存过量使用很有心得呀?能继续分享一下VM的其他技术吗?:le:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP