10.6. PolicyGenTemplates CR を使用して電源状態を設定する
低レイテンシーで高パフォーマンスのエッジデプロイメントでは、C ステートと P ステートを無効にするか制限する必要があります。この設定では、CPU は一定の周波数 (通常は最大ターボ周波数) で実行されます。これにより、CPU が常に最大速度で実行され、高いパフォーマンスと低レイテンシーが実現されます。これにより、ワークロードのレイテンシーが最適化されます。ただし、これは最大の電力消費にもつながり、すべてのワークロードに必要ではない可能性があります。
ワークロードはクリティカルまたは非クリティカルとして分類できます。クリティカルなワークロードでは、高パフォーマンスと低レイテンシーのために C ステートと P ステートの設定を無効にする必要があります。クリティカルでないワークロードでは、C ステートと P ステートの設定を使用して、いくらかのレイテンシーとパフォーマンスを犠牲にします。GitOps Zero Touch Provisioning (ZTP) を使用して、次の 3 つの電源状態を設定できます。
- 高性能モードは、最大の消費電力で超低遅延を提供します。
- パフォーマンスモードは、比較的高い電力消費で低遅延を提供します。
- 省電力は、消費電力の削減と遅延の増加のバランスをとります。
デフォルトの設定は、低遅延のパフォーマンスモードです。
PolicyGenTemplate カスタムリソース (CR) を使用すると、ztp-site-generate コンテナーの GitOps プラグインで提供されるベースソース CR に追加の設定の詳細をオーバーレイできます。
group-du-sno-ranGen.yaml の PolicyGenTemplate CR に基づいて、参照設定用に生成された PerformanceProfile CR の workloadHints フィールドを更新して、電源状態を設定します。
次の共通の前提条件は、3 つの電源状態すべての設定に適用されます。
前提条件
- カスタムサイトの設定データを管理する Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、Argo CD のソースリポジトリーとして定義されている必要があります。
- 「GitOps ZTP サイト設定リポジトリーの準備」で説明されている手順に従っている。
10.6.1. PolicyGenTemplate CR を使用してパフォーマンスモードを設定する リンクのコピーリンクがクリップボードにコピーされました!
この例に従って group-du-sno-ranGen.yaml の PolicyGenTemplate CR に基づいて、参照設定用に生成された PerformanceProfile CR の workloadHints フィールドを更新してパフォーマンスモードを設定します。
パフォーマンスモードは、比較的高い電力消費で低遅延を提供します。
前提条件
- 「低遅延および高パフォーマンスのためのホストファームウェアの設定」のガイダンスに従って、パフォーマンス関連の設定で BIOS を設定している。
手順
out/argocd/example/policygentemplatesにあるgroup-du-sno-ranGen.yaml参照ファイルのPerformanceProfileのPolicyGenTemplateエントリーを次のように更新して、パフォーマンスモードを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Git で
PolicyGenTemplate変更をコミットし、GitOps ZTP Argo CD アプリケーションによって監視される Git リポジトリーにプッシュします。
10.6.2. PolicyGenTemplate CR を使用した高パフォーマンスモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
この例に従って group-du-sno-ranGen.yaml の PolicyGenTemplate CR に基づいて、参照設定用に生成された PerformanceProfile CR の workloadHints フィールドを更新して高パフォーマンスモードを設定します。
高パフォーマンスモードは、最大の消費電力で超低遅延を提供します。
前提条件
- 「低遅延および高パフォーマンスのためのホストファームウェアの設定」のガイダンスに従って、パフォーマンス関連の設定で BIOS を設定している。
手順
out/argocd/example/policygentemplatesにあるgroup-du-sno-ranGen.yaml参照ファイルのPerformanceProfileのPolicyGenTemplateエントリーを次のように更新して、高パフォーマンスモードを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Git で
PolicyGenTemplate変更をコミットし、GitOps ZTP Argo CD アプリケーションによって監視される Git リポジトリーにプッシュします。
10.6.3. PolicyGenTemplate CR を使用した省電力モードの設定 リンクのコピーリンクがクリップボードにコピーされました!
この例に従って group-du-sno-ranGen.yaml の PolicyGenTemplate CR に基づいて、参照設定用に生成された PerformanceProfile CR の workloadHints フィールドを更新して、省電力モードを設定します。
省電力モードは、消費電力の削減と遅延の増加のバランスをとります。
前提条件
- BIOS で C ステートと OS 制御の P ステートを有効化している。
手順
out/argocd/example/policygentemplatesにあるgroup-du-sno-ranGen.yaml参照ファイルのPerformanceProfileのPolicyGenTemplateエントリーを次のように更新して、省電力モードを設定します。追加のカーネル引数オブジェクトを使用して、省電力モード用に CPU ガバナーを設定することを推奨します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
schedutilガバナーが推奨されますが、使用できる他のガバナーにはondemandとpowersaveが含まれます。
-
Git で
PolicyGenTemplate変更をコミットし、GitOps ZTP Argo CD アプリケーションによって監視される Git リポジトリーにプッシュします。
検証
次のコマンドを使用して、識別されたノードのリストから、デプロイされたクラスター内のワーカーノードを選択します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、ノードにログインします。
oc debug node/<node-name>
$ oc debug node/<node-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node-name>を、電源状態を確認するノードの名前に置き換えます。/hostをデバッグシェル内の root ディレクトリーとして設定します。デバッグ Pod は、Pod 内の/hostにホストの root ファイルシステムをマウントします。次の例に示すように、ルートディレクトリーを/hostに変更すると、ホストの実行可能パスに含まれるバイナリーを実行できます。chroot /host
# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、適用された電源状態を確認します。
cat /proc/cmdline
# cat /proc/cmdlineCopy to Clipboard Copied! Toggle word wrap Toggle overflow
予想される出力
-
省電力モードの
intel_pstate=passive。
10.6.4. 省電力の最大化 リンクのコピーリンクがクリップボードにコピーされました!
最大の CPU 周波数を制限して、最大の電力節約を実現することを推奨します。最大 CPU 周波数を制限せずに重要でないワークロード CPU で C ステートを有効にすると、重要な CPU の周波数が高くなるため、消費電力の節約の多くが無効になります。
sysfs プラグインフィールドを更新し、リファレンス設定の TunedPerformancePatch CR で max_perf_pct に適切な値を設定することで、電力の節約を最大化します。group-du-sno-ranGen.yaml に基づくこの例では、最大 CPU 周波数を制限するために従う手順を説明します。
前提条件
- 「PolicyGenTemplate CR を使用した省電力モードの設定」の説明に従って、省電力モードを設定している。
手順
out/argocd/example/policygentemplatesのgroup-du-sno-ranGen.yaml参照ファイルで、TunedPerformancePatchのPolicyGenTemplateエントリーを更新します。電力を最大限に節約するには、次の例に示すようにmax_perf_pctを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
max_perf_pctは、cpufreqドライバーが設定できる最大周波数を、サポートされている最大 CPU 周波数のパーセンテージとして制御します。この値はすべての CPU に適用されます。サポートされている最大周波数は/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freqで確認できます。開始点として、All Cores Turbo周波数ですべての CPU を制限する割合を使用できます。All Cores Turbo周波数は、すべてのコアがすべて使用されているときに全コアが実行される周波数です。
注記省電力を最大化するには、より低い値を設定します。
max_perf_pctの値を低く設定すると、最大 CPU 周波数が制限されるため、消費電力が削減されますが、パフォーマンスに影響を与える可能性もあります。さまざまな値を試し、システムのパフォーマンスと消費電力を監視して、ユースケースに最適な設定を見つけてください。-
Git で
PolicyGenTemplate変更をコミットし、GitOps ZTP Argo CD アプリケーションによって監視される Git リポジトリーにプッシュします。