Windows Server バランス電源プランのためのプロセッサ電源管理 (PPM) チューニング
Windows Server 2008 以降の Windows Server では、バランス、高パフォーマンス、省電力の 3 つの電源プランが提供されています。 バランス電源プランは、一連の標準的なサーバー ワークロードに最適なエネルギー効率を提供することを目的とした既定の選択肢です。 このトピックでは、Windows の過去の複数のリリースで、バランス スキーム用の既定の設定を決定するために使用されたワークロードについて説明します。
ワークロード特性、パフォーマンス、および電力要件がこれらのワークロードと大きく異なるサーバー システムを実行する場合は、既定の電源設定を調整することを検討してください (つまり、カスタム電源プランを作成します)。 役に立つチューニング情報のソースの 1 つとして、「サーバー ハードウェアの電源に関する考慮事項」があります。 または、ある程度の応答性の向上と引き替えにエネルギーを大量に消費する可能性があることを認めた上で、高パフォーマンスの電源プランが環境に適した選択肢であると判断することもできます。
重要
カスタム ポリシーを作成する特別なニーズがあり、ワークロードの特性によって結果が違ったものになることを十分よく理解している場合を除き、Windows Server に付属している電源ポリシーを利用してください。
Windows プロセッサの電源チューニング方法
テストされたワークロード
ワークロードは、"通常の" Windows Server ワークロードのベスト エフォート セットに対応するように選択されています。 当然ながら、このセットは、実際の幅広いサーバー環境全体を代表するものではありません。
各電源ポリシーのチューニングは、Windows Server 2008 から開始された次の 5 つのワークロードによるデータ ドリブンで行われます。
IIS Web サーバーのワークロード
IIS Web サーバーを実行するプラットフォームのエネルギー効率を最適化するためには、Web Fundamentals と呼ばれる Microsoft 社内のベンチマークが使用されます。 この設定には、Web アクセス トラフィックをシミュレートする、1 つの Web サーバーと複数のクライアントが含まれています。 動的、静的ホット (メモリ内)、および静的コールド (ディスク アクセスが必要) な Web ページの分布は、運用サーバーの統計的な調査に基づいています。 サーバーの CPU コアの使用率を最大まで高めるために (テスト対象範囲の一端)、この設定では十分に高速なネットワークとディスク リソースが必要です。
SQL Server データベースのワークロード
TPC-E ベンチマークは、データベース パフォーマンス分析のための一般的なベンチマークです。 これは PPM チューニングの最適化のための OLTP ワークロードを生成するために使用されます。 このワークロードではディスク I/O が非常に大きくなるため、記憶域システムとメモリ サイズのパフォーマンス要件が高くなります。
ファイル サーバーのワークロード
FSCT と呼ばれる Microsoft が開発したベンチマークを使用して、SMB ファイル サーバーのワークロードが生成されます。 これによってサーバー上に大きなファイル セットが作成され、多くのクライアント システム (実際または仮想化) を使用して、ファイルのオープン、クローズ、読み取り、書き込み操作が生成されます。 操作の組み合わせは、運用サーバーの統計的な調査に基づいています。 CPU、ディスク、およびネットワーク リソースに負荷がかかります。
SPECpower – JAVA ワークロード
SPECpower_ssj2008 は、電力とパフォーマンスの特性を一緒に評価する、初の業界標準の SPEC ベンチマークです。 これは、CPU 負荷レベルが異なるサーバー側の Java ワークロードです。 多くのディスク リソースやネットワーク リソースは必要ありませんが、メモリ帯域幅についての特定の要件があります。 ほとんどすべての CPU アクティビティは、ユーザーモードで実行されます。カーネルモードのアクティビティは、電源管理の決定を除けば、ベンチマークの電源とパフォーマンスの特性にあまり影響しません。
アプリケーション サーバーのワークロード
SAP-SD ベンチマークを使用して、アプリケーション サーバーのワークロードが生成されます。 2 層のセットアップが使用され、データベースとアプリケーション サーバーが同じサーバー ホスト上にあります。 このワークロードでは、他にテストされたワークロードとは異なり、応答時間もパフォーマンス メトリックとして利用されます。 したがって、PPM パラメーターの応答性に対する影響を確認するために使用されます。 しかし、待機時間に敏感なすべての運用ワークロードを表すことは意図されていません。
SPECpower を除くすべてのベンチマークは、当初はパフォーマンス分析向けに設計されたものであるため、ピーク時の負荷レベルで実行するように作成されました。 ただし、実際の運用サーバーでは中程度から軽度の負荷レベルの方が一般的であり、バランス プランの最適化にとっては関心があります。 Microsoft では、さまざまな調整方法 (たとえば、アクティブなユーザー/クライアントの数を減らすなど) を使用して、100% から 10% までの (10% 刻みの) さまざまな負荷レベルで、ベンチマークを意図的に実行しました。
上記のワークロードでは、チューニングのパフォーマンス メトリックとしてスループットが使用されています。 安定した状態では、使用率が変化しても、システムが過負荷になるまで (約 100% の使用率) スループットは変化しません。 その結果、バランス電源プランでは、プロセッサ周波数を最小限に抑え、使用率を最大化することで、電力が大幅に優先されます。 Windows Server 2016 からは、迅速な応答時間の要件が大幅に増加しました。 Microsoft では、ユーザーが迅速な応答時間が必要な場合は高パフォーマンスの電源プランに切り替えることを推奨していますが、一部のユーザーは、軽度から中程度の負荷レベルでの電力上のメリットを失いたくないと考えています。 このため、Windows Server の PPM チューニングでは、応答時間に敏感なワークロードもチューニング用に含まれています。
GeekBench 3
GeekBench 3 は、シングルコアおよびマルチコアのパフォーマンスのスコアを区別する、クロスプラットフォームのプロセッサ ベンチマークです。 これは、整数ワークロード (暗号化、圧縮、画像処理など)、浮動小数点ワークロード (モデリング、フラクタル、画像の鮮明化、画像のぼかしなど) およびメモリ ワークロード (ストリーミング) をシミュレートします。
応答時間が、スコア計算の主要な尺度になります。 テスト対象のシステムにおいて、Windows Server 2008 の既定のバランス電源プランでは、高パフォーマンスの電源プランと比べ、シングルコア テストで最大 18%、マルチコア テストでは最大 40% 後退しています。 Windows Server 2016 では、これらの後退がありません。
DiskSpd
Diskspd は、Microsoft によって開発されたストレージ ベンチマーク用のコマンドライン ツールです。 ストレージのパフォーマンス分析の目的で、ストレージ システムに対するさまざまな要求を生成するために広く使用されています。
ここでは、[フェールオーバー クラスター] を設定し、Diskspd を使用して、ローカルおよびリモートのストレージ システムに対し、ランダムおよびシーケンシャルな読み取りおよび書き込みの IO を、さまざまな IO サイズで生成しました。 Microsoft のテストによると、異なる電源プランでは、IO 応答時間はプロセッサ周波数の影響を受けやすいことが示されています。 既定の Windows Server 2008 のバランス電源プランでは、特定のワークロードにおいて、応答時間が高パフォーマンス電源プランの応答時間の倍になる可能性があります。 Windows Server 2016 のバランス電源プランでは、ほとんどの後退がなくなっています。
重要
Windows Server 2016 を実行している Intel [Broadwell] プロセッサ以降では、ワークロードの変化に対してより迅速な適応を実現するために、プロセッサの電源管理の決定の大部分は、OS レベルではなくプロセッサで行われます。 OS によって使用される従来の PPM パラメーターは、実際の周波数の決定にほとんど影響しません。ただし、電力またはパフォーマンスのどちらを優先するかをプロセッサに通知したり、最小周波数と最大周波数を制限したりする場合を除きます。 このため、ここで説明した PPM チューニングの結果は、Broadwell 以前のシステムでのみ観察されます。
ハードウェア構成
Windows をリリースするごとに、電源プランの分析および最適化プロセスには最新の運用サーバーが使用されます。 場合によっては、リリース スケジュールが次の Windows リリースのスケジュールと一致する実稼働前システムでテストが実行されたこともあります。
ほとんどのサーバーは 1 ~ 4 個のプロセッサ ソケットで販売されており、スケールアップ サーバーでは、エネルギー効率が重要な懸念事項となる見込みが低いため、電源プランの最適化テストは主に 2 ソケットおよび 4 ソケット システムで実行されます。 各テストの RAM、ディスク、およびネットワーク リソースの量は、各システムが最大能力まで実行できるように選択されますが、構成を合理的な状態に維持するなど、実際のサーバー環境に通常課されるコスト制約が考慮されます。
重要
システムはピーク時の負荷で実行できますが、通常は低い負荷レベルに対して最適化します。これは、ピーク時の負荷レベルで常に実行するサーバーは、エネルギー効率が高優先順位でない限り、高パフォーマンスの電源プランを使用した方が賢明であるためです。
メトリック
テストされたすべてのベンチマークでは、パフォーマンス メトリックとしてスループットが使用されます。 応答時間は、これらのワークロードの SLA 要件と見なされます (ただし、これがプライマリ メトリックである SAP は除きます)。 たとえば、平均または最大の応答時間が特定の値未満の場合、ベンチマークの実行は "有効" と見なされます。
そのため、PPM チューニング分析では、パフォーマンス メトリックとしてスループットも使用されます。 最大の負荷レベル (100% の CPU 使用率) での目標は、電源管理の最適化によってスループットが数パーセントを超えて減少しないことです。 ただし、主な考慮事項は、中程度および低い負荷レベルで (以下に定義されている) 電力効率を最大化することです。
CPU コアを低周波数で実行すると、エネルギー消費量が削減されます。 ただし、周波数が低いと、通常はスループットが低下し、応答時間が長くなります。 バランス電源プランでは、応答性と電力効率が意図的にトレードオフになっています。 SAP ワークロード テスト、およびその他のワークロードに対する応答時間の SLA では、これらの特定のワークロードについて、応答時間の増加が特定のしきい値 (例として 5%) を超えないようにする必要があります。
注意
ワークロードが応答時間に非常に敏感である場合、システムは高パフォーマンス電源プランに切り替えるか、バランス電源プランを変更して実行中の周波数を非常に積極的に高くする必要があります。
Windows Server バランス電源プランの既定のパラメーター
Windows Server 2016 を実行している Intel Broadwell プロセッサ以降、Windows Server 電源管理では Intel のハードウェア制御の P ステート (HWP) を Intel システムで既定として使用します。 HWP は、協調的なハードウェアとソフトウェアのパフォーマンス制御のための新機能です。 HWP が有効になっていると、CPU はアクティビティとスケーラビリティを監視し、ハードウェアのタイムスケールで周波数を選択します。 OS は、アクティビティを監視して一定の間隔で周波数を選択する必要がなくなりました。 HWP への切り替えには、すばやく応答できることや、プロセッサおよび TDP の管理下にあるその他のコンポーネントのハードウェア電力効率がよりよく把握できることなどの利点があります。
HWP システムの場合、Windows では最小および最大のプロセッサ状態を設定して制約を課すオプションが、引き続き存在します。 また、電力のパフォーマンスの優先度 (EPP) パラメーターを使用して、電力とパフォーマンスのバランスを設定することもできます。 値を低くするとパフォーマンスが優先され、値を高くすると電力が優先されます。 既定値は 50 で、電力とパフォーマンスのバランスが取れた設定となります。
パラメーター | Windows Server 2012R2 以前 | Windows Server 2016 以降 |
---|---|---|
HWP が有効 | 該当なし | Intel Broadwell + |
電力とパフォーマンスの優先度 | 該当なし | 50 |
Intel の Broadwell 以前のシステムまたは HWP サポートのないシステム (AMD サーバーなど) の場合、Windows では依然として完全な制御が可能で、PPM パラメーターに基づいてプロセッサの周波数が決定されます。 Windows Server 2012R2 の既定の PPM パラメーターでは、電力を優先させすぎているため、ワークロード (特にバースト ワークロード) のパフォーマンスに大きな影響を与えるおそれがあります。 Windows Server 2016 RS2 では 4 つの PPM パラメーターが変更され、中程度の負荷レベル付近で周波数が速く増加するようになっています。
パラメーター | Windows Server 2016 (RS1) 以前 | Windows Server 2016 (RS2) 以降 |
---|---|---|
プロセッサ パフォーマンスの増加しきい値 | 90 | 60 |
プロセッサ パフォーマンスの低下しきい値 | 80 | 40 |
プロセッサ パフォーマンスの増加回数 | 3 | 1 |
プロセッサ パフォーマンスの増加ポリシー | Single | 理想 |
CPU 使用率ベースの電源管理アルゴリズムは、IO またはネットワークに負荷のかかるワークロードの待機時間に悪影響を与える可能性があります。 IO の完了またはネットワーク パケットの待機中に論理プロセッサがアイドル状態になる可能性があり、このとき全体的な CPU 使用率が低くなります。 この問題を解決するために、Windows Server 2019 では IO の応答時間を自動的に検出し、周波数の下限を高いレベルに引き上げます。 システムで HWP が使用されているかどうかに関係なく、次のパラメーターで動作を調整できます。
パラメーター | Windows Server 2019 以前 | Windows Server 2019 以降 |
---|---|---|
プロセッサの応答性のオーバーライド有効化しきい値 | 該当なし | 10 |
プロセッサの応答性のオーバーライド無効化しきい値 | 該当なし | 5 |
プロセッサの応答性のオーバーライド有効化回数 | 該当なし | 1 |
プロセッサの応答性のオーバーライド無効化回数 | 該当なし | 3 |
プロセッサの応答性のオーバーライド電力とパフォーマンスの優先度の上限 | 該当なし | 100 |
プロセッサの応答性のオーバーライド パフォーマンスの下限 | 該当なし | 100 |
チューニングのカスタマイズに関する提案
主なワークロード特性が、既定のバランス電源プラン PPM チューニングで使用されている 5 つのワークロードと大幅に異なる場合は、1 つ以上の PPM パラメーターを変更して、環境に最適なものを見つけることができます。
パラメーターの数と複雑さにより、これは困難な作業になる可能性がありますが、特定の環境でのエネルギー消費とワークロードの有効性の最適な妥協点を探している場合は、やってみる価値があるかもしれません。
チューニング可能な PPM パラメーターの完全なセットについては、「プロセッサの電源管理チューニング」を参照してください。 着手すべき最も単純な電源パラメーターには、次のものがあります。
HWP が有効なシステムの場合:
- 電力のパフォーマンスの優先度 - 値を大きくすると、パフォーマンスより電力が優先されます。
HWP システム以外の場合:
プロセッサ パフォーマンスの増加しきい値とプロセッサ パフォーマンスの増加回数 – 値を大きくすると、アクティビティの増加に対するパフォーマンスの応答がゆっくりになります。
プロセッサ パフォーマンスの低下しきい値 – 値を大きくすると、アイドル期間に対する電力の応答がすばやくなります
プロセッサ パフォーマンスの低下回数 - 値を大きくすると、アイドル期間中にパフォーマンスがさらに緩やかに低下します
プロセッサ パフォーマンスの増加ポリシー – "Single" (シングル) ポリシーでは、増加および維持されているアクティビティに対するパフォーマンスの応答が遅くなります。"Rocket" (ロケット) ポリシーでは、アクティビティの増加にすばやく反応します。
プロセッサ パフォーマンスの低下ポリシー – "Single" (シングル) ポリシーでは、長いアイドル期間全体にわたってパフォーマンスがさらに緩やかに低下します。"Rocket" (ロケット) ポリシーでは、アイドル期間に入ったら非常に速く電力を低下させます。
重要
実験を開始する前に、まずワークロードを把握しておく必要があります。これは、PPM パラメーターを正しく選択してチューニング作業を減らすのに役立ちます。
パフォーマンスと電力の大まかな要件を理解する
ワークロードが "リアルタイム" である場合 (たとえば、突然の故障やその他のエンドユーザーへの目に見える影響を受けるやすい場合)、または非常に厳しい応答性の要件がある場合 (株式売買など)、高パフォーマンスの電源プランに切り替えることをお勧めします。 それ以外の場合は、ワークロードの応答時間の要件を理解し、それらの要件を引き続き満たすことのできる最適な電力効率になるよう PPM パラメーターを調整してください。
基になるワークロードの特性を理解する
ワークロードを把握し、チューニング用の実験パラメーター セットを設計する必要があります。 たとえば、CPU コアの周波数の立ち上がりを速くする必要がある場合 (アイドル期間が非常に長いバースト ワークロードがあるが、新しいトランザクションが発生したときに非常に迅速な応答が必要な場合)、プロセッサ パフォーマンスの増加ポリシーを "ロケット" に設定する必要があります (名前が示すとおり、CPU コアの周波数が一定の時間にわたって段階的に増加するのではなく、最大値まで跳ね上がります)。
ワークロードのバースト性が非常に高い場合、PPM のチェック間隔を短くして、バーストが到着した後に CPU の周波数の増加が早く開始されるようにすることができます。 ワークロードのスレッド コンカレンシーがあまり高くない場合、コア保留を有効にすることで、より少ない数のコアでワークロードを強制的に実行させることができます。これにより、プロセッサのキャッシュ ヒット率が向上する可能性もあります。
CPU の周波数を中程度の使用率で (つまり、軽度のワークロード レベルではない) 増加させたい場合、プロセッサ パフォーマンスの増加または低下しきい値を調整して、特定のレベルのアクティビティが観察されるまで対応しないようにすることができます。
定期的な動作を理解する
日中と夜間、または週末のパフォーマンス要件が異なっていたり、異なる時間に異なるワークロードが実行されたりすることもあります。 この場合、1 つの PPM パラメーター セットがすべての期間に最適であるとは限りません。 複数のカスタム電源プランを考案することができるため、さまざまな時間帯について調整し、スクリプトまたはその他の動的なシステム構成の方法を使用して、電源プランを切り替えることもできます。
繰り返しになりますが、これによって最適化プロセスの複雑さが増します。このため、この種類のチューニングによってどれだけの価値が得られるかという問題になります。このチューニングは、大幅なハードウェアのアップグレードやワークロードの変化があったときに繰り返す必要があると考えられます。
このため、Windows では最初にバランス電源プランが提供されています。これは多くの場合、特定のサーバー上の特定のワークロードに対して手動でチューニングするのは、おそらく行う価値がないためです。