12.3. NUMA リソーススケジューリングストラテジー
高性能ワークロードの配置を最適化するために、セカンダリースケジューラーは NUMA を考慮したスコアリングストラテジーを用いて、最適なコンピュートノードを選択します。このプロセスでは、リソースの可用性に基づいてワークロードを割り当てつつ、ローカルノードマネージャーが最終的なリソースの固定処理を行えるようにします。
高性能ワークロードをスケジューリングする際、セカンダリースケジューラーは、内部の NUMA リソース配分に基づいて、タスクに最適なコンピュートノードを決定します。スケジューラーは NUMA レベルのデータを使用してコンピュートノードを評価して選択しますが、そのノード内での実際のリソースの固定は、ローカルの Topology Manager および CPU マネージャーによって管理されます。
NUMA 対応クラスターで高パフォーマンスワークロードがスケジュールされるときには、次の手順が実行されます。
- ノードフィルタリング: スケジューラーはまずクラスター全体をフィルタリングして、実行可能な ノードの候補リストを作成します。ノードは、ラベルの一致、taint や toleration 範囲の遵守、そして重要な点として、特定の NUMA ゾーン内に十分な利用可能なリソースがあることなど、すべての要件を満たしている場合にのみ保持されます。ノードがワークロードの NUMA アフィニティーを満たせない場合、そのノードはこの段階で除外されます。
- ノード選択: 適切なノードの候補リストが作成されると、スケジューラーはそれらを評価して最適なノードを見つけます。スケジューラーは、NUMA を考慮したスコアリングストラテジーを適用して、リソース配分に基づいてこれらの候補をランク付けします。最も高いスコアを獲得したノードが、ワークロードの割り当て先として選択される。
- ローカル割り当て:Pod がコンピュートノードに割り当てられると、ノードレベルのコンポーネント (CPU、メモリー、デバイス、トポロジーマネージャー) が特定の CPU とメモリーの権限のある割り当てを実行します。スケジューラーはこの最終選択に影響を与えません。
以下の表は、OpenShift Container Platform のさまざまなストラテジーとその結果の概要を示しています。
| ストラテジー | 説明 | 効果 |
|---|---|---|
|
| 利用可能なリソースが最も多い NUMA ゾーンを含むコンピュートノードを優先します。 | ワークロードをクラスター全体に分散し、利用可能な余裕が最も大きいノードに割り当てます。 |
|
| 要求されたリソースがすでに高い利用率を持つ NUMA ゾーンに収まるコンピュートノードを優先します。 | すでに利用されているノードにワークロードを集中させることで、他のノードをアイドル状態にする可能性があります。 |
|
| NUMA ゾーン全体で CPU とメモリーの使用率が最もバランスの取れたコンピュートノードを優先します。 | CPU などのリソースタイプが使い果たされる一方で、メモリーなどの別のリソースタイプがアイドル状態になるといった、偏った使用パターンを防ぎます。 |