ESXi 通过添加附加级别的地址转换来虚拟化客户机物理内存。

  • VMM 会维护卷影页表中的组合虚拟到计算机页面映射。卷影页表将保持最新,与由 VMM 维护的客户机操作系统的虚拟到物理映射和物理到计算机映射一致。

  • VMM 侦听对客户机操作系统内存管理结构进行操作的虚拟机指令,以便虚拟机不会直接更新处理器上的实际内存管理单元 (MMU)。

  • 卷影页表由处理器的分页硬件直接使用。

  • 没有用于维护卷影页表一致性的简单计算开销。当虚拟 CPU 的数量增加时,开销更加明显。

这种地址转换方法允许在设置卷影页表之后,执行虚拟机中的正常内存访问,而不会增加地址转换开销。因为处理器上的转换旁视缓冲区 (TLB) 缓存从卷影页表中读取的直接虚拟-计算机映射,所以 VMM 访问内存时不会增加额外开销。请注意,软件 MMU 的开销内存要求比硬件 MMU 高。因此,为了支持软件 MMU,需要增加 VMkernel 中虚拟机支持的最大开销。在某些情况下,如果工作负载包括大量 TLB 缺失,软件内存虚拟化可通过硬件辅助的方法获得一定的优势。

性能注意事项

使用两组页表具有以下性能影响。

  • 对于常规客户机内存访问不会产生开销。

  • 在虚拟机中映射内存需要额外时间,这可能在以下情况下出现:

    • 虚拟机操作系统正在设置或更新虚拟地址到物理地址的映射。

    • 虚拟机操作系统从一个地址空间切换到另一个地址空间(上下文切换)。

  • 与 CPU 虚拟化相似,内存虚拟化开销取决于工作负载。