ESXi は、特別なレベルのアドレス変換を追加することによってゲスト物理メモリを仮想化します。
- VMM は、統合された仮想とマシンとのページ マッピングをシャドウ ページ テーブルに保持します。シャドウ ページ テーブルは、ゲスト OS の仮想と物理とのマッピングおよび VMM によって維持される物理とマシンとのマッピングを使用して最新の状態に保たれます。
- VMM は、プロセッサ上の実際の MMU (メモリ管理ユニット) が仮想マシンによって直接更新されないように、ゲスト OS のメモリ管理構造を操作する仮想マシン命令を妨害します。
- シャドウ ページ テーブルがプロセッサのページング ハードウェアによって直接使用されます。
- シャドウ ページ テーブルの整合性を維持するために、重要な計算のオーバーヘッドがあります。このオーバーヘッドは、仮想 CPU の数が増えると、より顕著になります。
このアドレス変換方法により、シャドウ ページ テーブルが設定されたあと、アドレス変換オーバーヘッドが追加されることなく、仮想マシン内での通常のメモリ アクセスが実行可能になります。プロセッサ上の TLB (変換索引バッファ) は、シャドウ ページ テーブルから読み取られた仮想とマシンとの直接マッピングをキャッシュするので、VMM によってオーバーヘッドが追加されることなく、メモリにアクセスできます。ソフトウェア MMU の場合、オーバーヘッド メモリ要件がハードウェア MMU よりも高くなることに注意してください。そのため、ソフトウェア MMU をサポートするには、VMkernel の仮想マシンでサポートされる最大オーバーヘッドを増やす必要があります。場合により、ワークロードで TLB ミスが大量に発生するときは、ソフトウェアによるメモリ仮想化の方がハードウェア アシストによる方法よりもパフォーマンス上のメリットが大きいことがあります。
パフォーマンスについての考慮事項
2 つのページ テーブルを使用した場合、次のようなパフォーマンスへの影響があります。
- 通常のゲスト メモリ アクセスの場合、オーバーヘッドはありません。
-
仮想マシン内のメモリをマッピングする追加の時間が必要です。これは、次の場合に発生します。
- 仮想マシン オペレーティング システムが、仮想アドレスと物理アドレスとのマッピングを設定または更新している。
- 仮想マシン オペレーティング システムが、アドレス スペース間で切り替えを行なっている (コンテキスト スイッチ)。
- CPU の仮想化と同様に、メモリの仮想化オーバーヘッドはワークロードに依存します。