在上篇文章《从内存告警谈ESXi主机内存管理——内存构成》中,我们主要介绍了ESXi主机内存构成和虚拟机内存构成,这里我们继续进行虚拟机内存介绍。
每台虚拟机的内存部分包括了两个方面的内容:主机内存、客户机内存。这几个概念看起来有些令人迷惑,我们简单介绍一下。
表格1. 主机内存
参数含义
已消耗已分配给虚拟机的物理内存的实际消耗量
开销消耗用于虚拟化目的的已消耗内存量
在上图中4,主机内存已消耗的大小为11.91GB,这和图3中的12195MB是完全相同的。
在运行过程中除了消耗为其分配的内存外,每个虚拟机还会消耗额外的开销内存以用于虚拟化。开销内存包括为虚拟机框架缓冲区和各种虚拟化数据结构(如卷影页表)预留的空间。开销内存的大小取决于虚拟CPU 数量,为客户机操作系统配置的内存以及虚拟机的工作负载。在上图4中这台虚拟机的内存开销已经达到了1.13GB。
表格2. 客户机内存
参数含义
专用受主机内存支持且没有共享的内存量
已共享共享的内存量。vSphere采用透明页共享(transparent page sharing)技术实现了虚拟机内存的共享,因此在虚拟机中运行的工作负载消耗的内存通常要少于其在物理机上运行时所需的内存,能够高效地支持更高级别的过载。
缩减量压缩缓存中的内存量。vSphere提供了内存压缩缓存,能够在内存过载使用时改进虚拟机性能
虚拟增长通过虚拟增长回收的内存量。vSphere利用内存虚拟增长驱动程序 (vmmemctl) 与服务器协作回收客户机操作系统认为最不重要的页面
已交换通过交换回收的内存量。当 vmmemctl 驱动程序不可用或未响应时,vSphere会使用交换从虚拟机中强制回收内存
未访问过客户机从未访问过的内存量