9.2. NUMA リソーススケジューリングストラテジー
高パフォーマンスのワークロードをスケジュールする場合、セカンダリースケジューラーは異なるストラテジーを使用して、選択したワーカーノード内のどの NUMA ノードがワークロードを処理するかを判断できます。OpenShift Container Platform でサポートされるストラテジーには、LeastAllocated
、MostAllocated
、および BalancedAllocation
が含まれます。これらの戦略を理解すると、パフォーマンスとリソースの使用率に対するワークロードの配置を最適化するのに役立ちます。
NUMA 対応クラスターで高パフォーマンスのワークロードがスケジュールされると、次の手順が発生します。
- スケジューラーは最初に、クラスター全体の基準に基づいて適切なワーカーノードを選択します。たとえば、テイント、ラベル、またはリソースの可用性などです。
- ワーカーノードが選択されると、スケジューラーは NUMA ノードを評価し、スコアリングストラテジーを適用して、ワークロードを処理する NUMA ノードを決定します。
- ワークロードがスケジュールされると、選択した NUMA ノードのリソースが更新され、割り当てが反映されます。
適用されるデフォルトのストラテジーが LeastAllocated
ストラテジーです。これにより、使用率の低い NUMA ノードで使用可能な最も利用可能なリソースを持つ NUMA ノードにワークロードが割り当てられます。このストラテジーの目的は、競合を減らし、ホットスポットを回避するために、ワークロードを NUMA ノード全体に分散することです。
次の表は、さまざまなストラテジーとその結果をまとめたものです。
スコアリングストラテジーの概要
ストラテジー | 説明 | 成果 |
---|---|---|
| 利用可能なリソースが最も多い NUMA ノードを優先します。 | ワークロードを分散して競合を軽減し、優先度の高いタスクについてヘッドルームを確保します。 |
| 利用できるリソースが最も低い NUMA ノードを優先します。 | 少ない NUMA ノードでワークロードを統合して、電力効率を高めるために他のノードを解放します。 |
| CPU とメモリー使用量が分散されている NUMA ノードを優先します。 | リソースの使用率もあり、スキュー使用パターンを防ぎます。 |
LeastAllocated ストラテジーの例
LeastAllocated
がデフォルトのストラテジーです。この戦略では、利用可能な最も多くのリソースを持つ NUMA ノードにワークロードが割り当てられます。これにより、リソースの競合を最小限に抑え、ワークロードを NUMA ノード全体に分散します。これにより、ホットスポットが削減され、優先度の高いタスクに十分なヘッドルームが確保されます。ワーカーノードには 2 つの NUMA ノードがあり、ワークロードには 4 つの vCPU と 8 GB のメモリーが必要です。
NUMA ノード | 合計 CPU | 使用されている CPU | 合計メモリー(GB) | 使用済みメモリー(GB) | 利用可能なリソース |
---|---|---|---|---|---|
NUMA 1 | 16 | 12 | 64 | 56 | 4 つの CPU、8 GB メモリー |
NUMA 2 | 16 | 6 | 64 | 24 | 10 個の CPU、40 GB メモリー |
NUMA 2 には NUMA 1 と比較して利用可能なリソースが多いため、ワークロードは NUMA 2 に割り当てられます。
MostAllocated ストラテジーの例
MostAllocated
ストラテジーでは、最も使用率の高い NUMA ノードである、使用可能なリソースが最も少ない NUMA ノードにワークロードを割り当てます。このアプローチは、完全な分離を必要とするエネルギー効率や重要なワークロードに対応する他の NUMA ノードを解放するのに役立ちます。以下の例では、LeastAllocated
セクションにリストされている初期 NUMA ノード状態の例 の値を使用します。
ワークロードには、4 つの vCPU および 8 GB のメモリーが必要です。NUMA 1 は NUMA 2 と比較して利用可能なリソースが少なくなるため、スケジューラーは NUMA 1 にワークロードを割り当てます。これにより、NUMA 2 がアイドル状態または最小限にロードされながら、そのリソースをさらに利用します。
BalancedAllocation ストラテジーの例
BalancedAllocation
ストラテジーは、CPU およびメモリー全体で最もバランスの大きいリソース使用率を持つ NUMA ノードにワークロードを割り当てます。目標は、使用率の低いメモリーで CPU 使用率が高くなるなど、不均衡な使用を防ぐことです。ワーカーノードに以下の NUMA ノードの状態があるとします。
NUMA ノード | CPU の使用率 | メモリー使用量 | BalancedAllocation score |
---|---|---|---|
NUMA 1 | 60% | 55% | 高(more balanced) |
NUMA 2 | 80% | 20% | 低(バランスなし) |
NUMA 1 には、NUMA 2 と比較して、CPU およびメモリーの使用率がよりバランスが取れるため、BalancedAllocation
ストラテジーが導入されると、ワークロードは NUMA 1 に割り当てられます。