1. EPT/NPT 二级地址翻译相比影子页表(shadow page table)如何降低内存虚拟化开销?
EPT/NPT(二级地址翻译)相比影子页表(shadow page table)是如何降低内存虚拟化开销的?
- 影子页表的工作原理与开销(同步、VM-Exit)
- EPT/NPT 的硬件二级翻译
- 对缺页与 TLB 性能的影响
影子页表(shadow page table)需要 VMM 为每个 Guest 维护一套与硬件页表一致的"影子页表",并通过 MMU 虚拟化(客户端页表被只读)在 Guest 修改页表时陷入 VM-Exit,由 VMM 同步影子页表,缺页处理也需 VMM 介入,开销大且复杂。EPT/NPT 则让硬件直接支持两级地址翻译(GVA→GPA→HPA),Guest 页表由硬件直接翻译,Guest 修改页表、缺页不再频繁触发 VM-Exit,VMM 只需维护 EPT/NPT 结构。工程价值在于:显著减少 VM-Exit 次数与 VM 切换开销,降低 Guest 内存访问的虚拟化开销,并通过硬件 TLB 缓存加速,使内存密集型虚拟化负载接近原生性能。
影子页表把"翻译"交给软件(频繁 exit),EPT/NPT 把"翻译"交给硬件(几乎零 exit)。后者以少量硬件页表结构换来的性能收益是巨大的。