发布日期:2016-09-06 09:40:22 作者:华腾信息
(作者::Brian Kirsch 翻译:王学强 来源:TechTarget中国)
允许虚拟机共享资源的内存管理技术十分常见,但是管理员应该遵循下面的策略和方法以降低风险。
随着CPU内核数量不断增加,其计算能力也在逐渐增强,内存逐渐成为虚拟机的性能瓶颈。内存速度并非停滞不前,相反地,其速度和密度都实现了快速提升,但是价格也随之不断增长。不幸的是,对于管理员来说,现代操作系统和应用程序对于内存的需求也在同步增加。
明智的管理员可以使用内存过量分配(overcommitment)技术抵消部分成本并且扩展可用资源,但是如果错误地使用这项技术,可能会对虚拟机的性能表现造成影响。
过量分配内存所面临的挑战
如何使用虚拟机内存是一项特殊的挑战,因为它涉及多个不同层级的内存管理。首先我们来看一下物理内存的使用方式,对于每台虚拟机来说,hypervisor都将会为其分配一部分或者所有它所需要的内存。分配的数量通常由是否使用内存预留或者共享技术所决定。除了物理内存之外,hypervisor通常会创建一个与之匹配的磁盘交换文件(swap file),它可以在主机物理内存不足的时候发挥作用。这种机制非常类似于传统操作系统使用交换文件或者页面文件的方式。这样就能够实现分层的效果,客户端操作系统可以使用hypervisor为其分配的“物理内存”或者自己的交换空间,但是根据hypervisor使用物理内存的方式不同,虚拟机所使用的“物理内存”有可能是真正的物理内存,还有可能是hypervisor的交换文件。
使用这种内存分层机制面临着很大挑战。管理员必须负责不同层级之间的内存过量分配情况,并且这些层级并不能感知到对方的存在。
透明页共享问题
现在我们已经了解了内存的分层机制,但是还需要解决VMware出于安全因素考虑所做出的变化,这些变化会对内存过量分配造成影响。出于安全考虑,VMware默认禁用了透明页共享(transparent page sharing)技术。如果多台虚拟机拥有相同的内存空间,那么透明页共享技术允许这些虚拟机共享内存当中的单个页面。这种方式虽然能够大大提升所节省的内存数量,但是也带来了安全隐患,因为虚拟机不再是完全独立的。尽管现在仍然能够使用透明内存页共享技术,但是必须手动启用,我们无法预知这种技术是否还会出现在未来的版本当中。
禁用了这项配置之后,就能够更加轻松地理解虚拟机过量分配机制了。现在的关注重点在于内存何时开始被交换到硬盘当中。管理员在使用内存过量分配技术的过程当中拥有很大程度上的灵活性,并非所有的虚拟机都是相同的。当我们使用过量分配技术时,将生产环境当中的虚拟机和用于测试以及开发的虚拟机放置在同一台hypervisor当中能够带来很多好处。如果出现内存抢夺的情况,通过使用内存预留和限制机制,管理员可以配置非关键虚拟机使用磁盘页面文件(paging file), 而不是物理内存。这是一种理想方式,允许管理员在保证核心系统正常运行的同时不影响其他系统,尽管优先级较低的虚拟机其性能表现也会更差。需要记住的另外一点是强制磁盘交换,对于测试虚拟机来说将会增加存储流量,这样可能会对其他虚拟机造成影响。
对于有能力添加本地磁盘的管理员来说,另外一种方式是使用固态磁盘来存储虚拟机的页面文件。这种方式保证管理员在过量分配内存的过程当中不必担心性能问题。不幸的是,这种方式意味着管理员不能够再使用迁移或者vMotion技术,因为它要求交换文件位于主机的物理硬件当中。