ESXi 透過新增額外層級的位址轉譯來虛擬化客體實體記憶體。

  • VMM 在陰影分頁表中維持結合的虛擬-機器分頁對應。該陰影分頁表與客體作業系統的虛擬-實體對應以及 VMM 維護的實體-電腦對應保持同步。

  • VMM 攔截操縱客體作業系統記憶體管理結構的虛擬機器指示,以便虛擬機器不會直接更新處理器上的實際記憶體管理單元 (MMU)。

  • 陰影分頁表由處理器的分頁硬體直接使用。

  • 存在用於維護陰影分頁表一致性的非簡單式運算額外負荷。虛擬 CPU 數目增加時,額外負荷會更加顯著。

此位址轉譯方法允許在設定陰影分頁表之後虛擬機器中執行一般記憶體存取,而不會新增位址轉譯額外負荷。因為處理器上的轉譯對應緩衝區 (TLB) 快取從陰影分頁表中讀取的直接虛擬-電腦對應,所以 VMM 存取記憶體時不會增加額外負荷。請注意,軟體 MMU 所需的額外負荷記憶體要高於硬體 MMU。因此,若要支援軟體 MMU,則需要增加 VMkernel 中虛擬機器支援的額外負荷上限。在某些情況下,如果工作負載引發大量 TLB 遺漏,則軟體記憶體虛擬化可能比硬體輔助的方法更加具有效能優勢。

效能考量事項

使用兩組分頁表具有以下效能影響。

  • 對於一般客體記憶體存取,不會產生額外負荷。

  • 在虛擬機器中對應記憶體需要額外時間,這可能在出現以下情況時發生:

    • 虛擬機器作業系統正在設定或更新虛擬位址到實體位址的對應。

    • 虛擬機器作業系統從一個位址空間切換到另一個位址空間 (內容切換)。

  • 與 CPU 虛擬化類似,記憶體虛擬化額外負荷取決於工作負載。