9.15.7. 仮想マシンでの huge page の使用
huge page は、クラスター内の仮想マシンのバッキングメモリーとして使用できます。
9.15.7.1. huge page の機能 リンクのコピーリンクがクリップボードにコピーされました!
メモリーマッピングの効率を最適化するには、huge page の機能を理解する必要があります。標準的な 4Ki ブロックとは異なり、huge page はより大きなメモリーセグメントであり、Translation Lookaside Buffer (TLB) ハードウェアキャッシュへのトラッキング負荷を軽減します。
メモリーはページと呼ばれるブロックで管理されます。ほとんどのシステムでは、1 ページは 4Ki です。1Mi のメモリーは 256 ページに相当し、1Gi のメモリーは 25 万 6000 ページに相当します。CPU には、内蔵のメモリー管理ユニットがあり、ハードウェアでこのようなページリストを管理します。Translation Lookaside Buffer (TLB) は、仮想から物理へのページマッピングの小規模なハードウェアキャッシュのことです。ハードウェアの指示で渡された仮想アドレスが TLB にあれば、マッピングをすばやく決定できます。そうでない場合には、TLB ミスが発生し、システムは速度が遅く、ソフトウェアベースのアドレス変換にフォールバックされ、パフォーマンスの問題が発生します。TLB のサイズは固定されているため、TLB ミスの発生率を低減するには、ページサイズを拡大する以外に方法はありません。
huge page とは、4Ki より大きいメモリーページのことです。x86_64 アーキテクチャーでは、2Mi と 1Gi の 2 つが一般的な huge page サイズです。別のアーキテクチャーではサイズは異なります。huge page を使用するには、アプリケーションが認識できるようにコードを書き込む必要があります。Transparent huge page (THP) は、アプリケーションによる認識なしに、huge page の管理を自動化しようとしますが、制約があります。特に、ページサイズは 2Mi に制限されます。THP では、THP のデフラグが原因で、メモリー使用率が高くなり、断片化が起こり、パフォーマンスの低下につながり、メモリーページがロックされてしまう可能性があります。このような理由から、アプリケーションは THP ではなく、事前割り当て済みの huge page を使用するように設計または推奨される場合があります。
OpenShift Virtualization では、事前に割り当てられた huge page を使用できるように仮想マシンを設定できます。