Non-Uniform Memory Access または Non-Uniform Memory Architecture (NUMA) は、SMP (マルチプロセッサ) アーキテクチャで使用される物理メモリ設計であり、メモリ アクセス時間は、プロセッサに対するメモリ位置に依存します。 NUMA の下では、プロセッサは非ローカル メモリ、つまり別のプロセッサのローカル メモリまたはプロセッサ間で共有されるメモリよりも高速に独自のローカル メモリにアクセスできます。
NUMA システムでは、プロセッサ、メモリ、および I/O がセルにグループ化されます。セル内の通信の遅延と帯域幅の特性は「速い」のに対し、セルの外に出るのは「遅い」です。 NUMA システムのメモリは物理的に分散されていますが、論理的に共有されているため、これらのシステムは、その機能を使用するように最適化されたアプリケーションにより優れたパフォーマンスを提供します。最適化されていないアプリケーションの場合、デフォルトの動作は有益ではないにしても問題がないように設計されており、メモリ、CPU、およびディスク領域のはるかに大きな共有リソースにアクセスできるため、パフォーマンスは向上します。
NUMA が有効になっているかどうかを確認する方法
BIOS で NUMA を有効にする必要があります。起動時に dmesg に numa 初期化の記録がない場合は、カーネル リング バッファ内の NUMA 関連メッセージが上書きされた可能性があります。
NUMA 対応システム
BIOS で NUMA が有効になっている場合は、コマンド「numactl –hardware」を実行します。 ' システムで利用可能なノードのインベントリを一覧表示します。以下は、NUMA を持つシステムでの numactl –hardware の出力例です。
# numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 node 0 size: 8157 MB node 0 free: 88 MB node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 node 1 size: 8191 MB node 1 free: 5176 MB node distances: node 0 1 0: 10 20 1: 20 10
NUMA 無効システム
1. BIOS で NUMA が無効になっている場合、コマンド「numactl –show」 ‘ 複数のノードは表示されません。
# numactl --show policy: default preferred node: current physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 cpubind: 0 nodebind: 0 membind: 0
2. コマンド「numactl –hardware」 ‘ また、複数のノードをリストしません。
available: 1 nodes (0) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 node 0 size: 65525 MB node 0 free: 17419 MB node distances: node 0 0: 10
3. サーバーが NUMA をサポートしていない場合、または BIOS オプションが有効になっていない場合は、dmesg に次のメッセージが表示されます。
No NUMA configuration found Faking a node at 0000000000000000-0000001027fff000
4. ACPI の場合 無効にすると、NUMA も無効になります。 grub.conf カーネル パラメータによって ACPI が無効になっていないことを確認し、見つかった場合は削除します。
$ grep acpi=off /proc/cmdline $