Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第9章 NUMA

以前から、AMD64 および Intel 64 システムのすべてのメモリーは、すべての CPU から等しくアクセスできました。Uniform Memory Access (UMA) と呼ばれるアクセス時間は、どの CPU が操作を実行しても同じです。
この動作は、最新の AMD64 および Intel 64 プロセッサーには当てはまりません。Non-Uniform Memory Access (NUMA) では、システムメモリーは NUMAノード 間で分割されます。NUMA ノードは、システムメモリーのローカルサブセットと同じアクセスレイテンシーを持つソケットまたは特定の CPU セットに対応します。
この章では、仮想化環境でのメモリー割り当てと NUMA チューニング設定について説明します。

9.1. NUMA メモリーの割り当てポリシー

次のポリシーは、システム内のノードからメモリーがどのように割り当てられるかを定義します。
Strict
Strict ポリシーとは、ターゲットノードにメモリーを割り当てることができない場合に割り当てが失敗することを意味します。
メモリーモード属性を定義せずに NUMA ノードセットリストを指定すると、デフォルトで strict モードになります。
Interleave
メモリーページは、ノードセットで指定されたノード間で割り当てられますが、ラウンドロビン方式で割り当てられます。
Preferred
メモリーは、単一の優先メモリーノードから割り当てられます。十分なメモリーが利用できない場合は、他のノードからメモリーを割り当てることができます。
目的のポリシーを有効にするには、ドメイン XML ファイルの <memory mode> 要素の値として設定します。
<numatune>
        <memory mode='preferred' nodeset='0'>
</numatune>
重要
strict モードでメモリーがオーバーコミットされ、ゲストに十分なスワップスペースがない場合、カーネルは一部のゲストプロセスを強制終了して、追加のメモリーを取得します。Red Hat は、この状況を防ぐために、preferred 割り当てを使用し、単一のノードセット (たとえば nodeset = '0') を指定することをお勧めします。