[Virtualization]ESXi体系结构与内存管理(三)控制内存分配

来源:互联网 发布:网络语 编辑:程序博客网 时间:2024/06/02 14:33

3 高级内存技术

为了更加充分地利用有限的内存资源,提高ESXi主机在内存压力过大时的系统稳定性,ESXi引入了空闲内存税(IMT)、透明页共享(TPS)、内存膨胀(Ballooning)、交换(Swapping)和内存压缩(Compressing)五种高级内存管理技术。这些技术并不是始终处于工作状态,工作与否依赖于主机内存使用的状态。图 2展示了各技术激活工作与内存使用状态的关系,其中内存使用状态定义了四个等级:High、Soft、Hard和Low。不同等级依据主机当前可用内存与总内存的比例划分,在ESXi 5上,四个等级的默认配置分别为总内存的6%、4%、2%和1%。

这里写图片描述
图 2 内存回收

3.1 空闲内存税

空闲内存税(Idle Memory Tax,IMT)是为了防止虚拟机累计闲置内存的技术。当虚拟机未使用当前已分配的所有内存时,ESXi对闲置内存的消耗量大于对正在使用内存的消耗量,也就是说ESXi会让空闲内存付出更多代价。

3.2 透明页共享

透明页共享(Transparent Page Sharing,TPS)技术允许同一块内存页在虚拟机之间进行共享,以减少所需的内存页总量。内存块比较首先通过计算哈希,哈希一致再进行完整页比较,当确定页面完全相同时,VMX将会透明地重映射虚拟机的内存页面,以便共享相同的物理内存页。通常情况下,ESXi工作在4 KB内存页面上,透明页共享会应用在所有内存页面上。但是在某些具有硬件支持的特殊情况下,VMX会使用2 MB内存大页面,ESXi不会共享这些大页面。

3.3 内存膨胀

内存膨胀(Ballooning)是ESXi主机回收虚拟机空闲内存的技术。膨胀技术实现需要安装在客户机操作系统上的内存虚拟增长驱动程序(vmmemctl,VMware工具的组成部分)支持。当ESXi主机运行的物理内存压力过大时,VMX会控制驱动程序向客户机操作系统请求内存,操作系统分配给驱动程序的内存最终将通过VMX提供给其它虚拟机使用;当ESXi主机的内存压力缓解时,驱动程序就会释放内存,把内存返还给客户机操作系统。由于其工作过程与气球相似,内存虚拟增长驱动程序在某些文献中也被称为“气球驱动程序”。

3.4 交换

交换(Swapping)也是ESXi主机回收虚拟机空闲内存的技术。这里介绍的交换技术不同于客户机操作系统上的常规交换,而是特指ESXi主机上利用交换文件(*.vswp)实现的交换。通常情况,只有当vmmemctl驱动程序不可用或未响应时,ESXi主机才会使用交换技术从虚拟机中强制回收内存。由于交换不考虑客户机操作系统是否使用这些页面,且磁盘比内存的响应时间慢上千倍,因此采用交换技术将显著影响客户机操作系统的性能。

3.5 内存压缩

内存压缩(Memory Compression)可在ESXi主机使用交换技术时,减少必须交换到磁盘的页面数量,从而改进虚拟机性能。当需要交换页面时,ESXi会首先尝试压缩虚拟页面,将压缩至2 KB甚至更小的页面存储在虚拟机的压缩缓存中。由于访问压缩缓存比访问交换文件更快,因此利用内存压缩技术,不会显著影响虚拟机性能。

4 小 结

虚拟化技术的显著优点就是能够根据虚拟机的实际性能需求动态分配资源。为了充分利用资源、解决资源压力过大时的主机稳定性和虚拟机竞争问题,ESXi提供了一整套内存分配控制和高级内存管理技术。读者若想进一步了解文中介绍的内容,强烈建议查阅VMware官方文档。

5 参考文献

[1] Charu Chaubal.The Architecture of VMware ESXi.20081024 WP-030-PRD-02-03.VMware,2007
[2] Forbes Guthrie and Scott Lowe. VMware vSphere Design 2nd Edition.SYBEX,2013
[3] Scott Lowe等著.赵俐,曾少宁译.精通VMware vSphere 5.5[M].北京:人民邮电出版社,2015
[4] vSphere资源管理 ESXi 5.5 U2.ZH_CN-001584-00.VMware,2014