许多管理员必须面对在环境中进行内存分配的复杂任务。不管组织是使用VMware vSphere还是Microsoft Hyper-V,从物理内存本身就限制了物理服务器能够宿主的虚拟机数量。但是Hyper-V Dynamic Memory和VMware的内存过量功能允许管理员最大化他们服务器上的虚拟机密度。 内存过量使用能允许虚拟机使用比物理主机可用的更多的内存。
比如,你的主机有2GB的内存,就可以在其上运行四台拥有1GB内存的虚拟机。内存能过量使用因为有比物理更多的虚拟内存。因此,管理员也能最大化主机服务器上能运行的虚拟机数量,而不用理会物理内存的限制。 如果没有内存过量使用功能,分配给……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
许多管理员必须面对在环境中进行内存分配的复杂任务。不管组织是使用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和对虚拟机进行优先级选择。这些选项都使得在虚拟环境中进行更加精确的内存分配。
作者
Brien M. Posey,微软认证系统工程师,Windows 2000 Server 和 IIS方面最有价值专家。Brien曾任全国性连锁医院的CIO,负责过Fort Knox的网络安全。作为一名自由撰稿人,他为微软, CNET, ZDNet, TechTarget, MSD2D, Relevant Technologies 以及其他的科技公司写过稿。
翻译
相关推荐
-
管理员应该掌握的内存管理技术
如果你想要整合重复的文件,或者反之,你想要备份文件以防止出现错误,或者物理服务器需要从虚拟机收回一些内存,本文中的内存管理技术就可以为你提供解决方案。
-
锁定应用程序内存需求 优化Hyper-V动态内存(上)
通过遵循以下步骤并回答一些关于必须满足的应用程序内存需求问题,你将学会如何在基础设施中最好地使用Hyper-V Dynamic Memory。
-
技巧:用Hyper-V Dynamic Memory监控虚拟内存
微软发布的Microsoft Hyper-V R2 Service Pack 1系统包含动态内存技术,可以帮助管理员更灵活地进行内存分配。
-
Windows Server 2008 R2 SP1发布 含Dynamic Memory功能
微软昨天发布了Hyper-V R2 Service Pack 1 Release Candidate,作为Windows Server 2008 R2 Service Pack 1的一部分。最大的亮点在于Dynamic Memory……