9.2. NUMA リソーススケジューリングストラテジー
高パフォーマンスのワークロードをスケジュールする場合、セカンダリースケジューラーは、さまざまなストラテジーを採用して、選択したワーカーノード内のどの NUMA ノードによってワークロードを処理するかを決定できます。OpenShift Container Platform でサポートされているストラテジーには、LeastAllocated
、MostAllocated
、BalancedAllocation
があります。これらのストラテジーを理解することで、パフォーマンスとリソース使用率のためにワークロードの配置を最適化できます。
NUMA 対応クラスターで高パフォーマンスワークロードがスケジュールされるときには、次の手順が実行されます。
- まず、スケジューラーがクラスター全体の基準に基づいて適切なワーカーノードを選択します。たとえば、taint、ラベル、リソースの可用性などの基準です。
- ワーカーノードが選択されると、スケジューラーはその NUMA ノードを評価し、スコアリングストラテジーを適用して、どの NUMA ノードによってワークロードを処理するかを決定します。
- ワークロードがスケジュールされると、選択された NUMA ノードのリソースが更新され、割り当てが反映されます。
適用されるデフォルトのストラテジーは、LeastAllocated
ストラテジーです。このストラテジーでは、利用可能なリソースが最も多く、使用率が最も低い NUMA ノードにワークロードが割り当てられます。このストラテジーの目的は、競合を減らし、ホットスポットを回避するために、NUMA ノード全体にワークロードを分散することです。
次の表に、各ストラテジーとその効果の概要を示します。
スコアリングストラテジーの概要
ストラテジー | 説明 | 効果 |
---|---|---|
| 利用可能なリソースが最も多い NUMA ノードを優先します。 | ワークロードを分散して競合を減らし、優先度の高いタスクのための余裕を確保します。 |
| 利用可能なリソースが最も少ない NUMA ノードを優先します。 | ワークロードを少数の NUMA ノードに集約し、他のノードを解放してエネルギー効率を高めます。 |
| CPU とメモリーの使用量がバランスのとれた NUMA ノードを優先します。 | 均等なリソース使用を実現し、偏った使用パターンを防ぎます。 |
LeastAllocated ストラテジーの例
LeastAllocated
がデフォルトのストラテジーです。このストラテジーでは、利用可能なリソースが最も多い NUMA ノードにワークロードを割り当て、リソースの競合を最小限に抑え、ワークロードを NUMA ノード全体に分散します。これにより、ホットスポットが削減され、優先度の高いタスクに十分な余裕が確保されます。ワーカーノードに 2 つの NUMA ノードがあり、ワークロードに 4 つの仮想 CPU と 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 つの仮想 CPU と 8 GB のメモリーが必要です。NUMA 1 は NUMA 2 に比べて利用可能なリソースが少ないため、スケジューラーはワークロードを NUMA 1 に割り当て、そのリソースをさらに活用します。一方、NUMA 2 はアイドル状態にするか、その負荷を最小限に抑えます。
BalancedAllocation ストラテジーの例
BalancedAllocation
ストラテジーでは、CPU とメモリーのリソース使用率が最もバランスのとれた NUMA ノードにワークロードを割り当てます。目的は、メモリーが十分に使用されていないのに CPU 使用率が高くなるなど、不均衡な使用を防ぐことです。ワーカーノードの NUMA ノードの状態が次のようなものであると仮定します。
NUMA ノード | CPU の使用率 | メモリー使用率 | BalancedAllocation のスコア |
---|---|---|---|
NUMA 1 | 60% | 55% | 高 (バランスがとれている) |
NUMA 2 | 80% | 20% | 低 (バランスがとれていない) |
NUMA 1 は、NUMA 2 と比較して CPU とメモリーの使用率がよりバランスがとれています。そのため、BalancedAllocation
ストラテジーを適用すると、ワークロードは NUMA 1 に割り当てられます。