Show Table of Contents
9.2. NUMA の自動負荷分散
NUMA の自動負荷分散により、NUMA ハードウェアシステムで実行するアプリケーションのパフォーマンスが向上します。この機能は Red Hat Enterprise Linux 7 システムではデフォルトで有効にされます。
通常アプリケーションは、スレッドがスケジュールされるのと同じ NUMA ノード上でプロセスのスレッドがメモリーにアクセスする場合に最適に実行されます。NUMA の自動負荷分散は、スレッドがアクセスしているメモリーの近くにタスク (スレッドまたはプロセス) を移行します。さらに、アプリケーションデータを、これを参照するタスクの近くにあるメモリーに移動します。これはすべて、NUMA 自動負荷分散がアクティブな場合にカーネルによって自動的に実行されます。
NUMA の自動負荷分散は、数多くのアルゴリズムおよびデータ構造を使用します。これらは NUMA の自動負荷分散がシステム上で有効な場合にのみアクティブになり、割り当てられます。
- Periodic NUMA unmapping of process memory (プロセスメモリーの定期的な NUMA マッピング解除)
- NUMA hinting fault (NUMA ヒンティングフォールト)
- Migrate-on-Fault (MoF) - メモリーを使用するプログラムが実行される場所にメモリーを移動します。
- task_numa_placement - 実行中のプログラムをそれらのメモリーの近くに移動します。
9.2.1. NUMA の自動負荷分散の設定
Red Hat Enterprise Linux 7 では、NUMA の自動負荷分散はデフォルトで有効にされており、この機能は NUMA プロパティーが設定されたハードウェア上で起動する際に自動的にアクティブにされます。
NUMA の自動負荷分散は、以下の条件の両方を満たす場合に有効にされます。
# numactl --hardwareは複数のノードを表示します。# cat /sys/kernel/debug/sched_featuresにより、フラグにNUMAが表示されます。
NUMA の手動によるアプリケーションのチューニングは NUMA の自動負荷分散をオーバーライドし、メモリーの定期的なマッピング解除、NUMA フォールト、移行、およびそれらのアプリケーションの自動の NUMA 配置を無効にします。
システム全体での手動の NUMA チューニングがより望ましい場合があります。
NUMA の自動負荷分散を無効にするには、以下のコマンドを使用します。
# echo 0 > /proc/sys/kernel/numa_balancing
NUMA の自動負荷分散を有効にするには、以下のコマンドを使用します。
# echo 1 > /proc/sys/kernel/numa_balancing
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.