最適化する CPUスケーリング 低負荷時には、顕著なレイテンシーを発生させるリスクを冒すことなく、サーバーがクロックと電圧を下げられるようにね。エネルギー・プロファイルを適切に設定することで パフォーマンス 実際のワークロードに沿った電力要件とコスト、廃熱を大幅に削減する。.
中心点
これ以上深く掘り下げる前に、私は最も重要なレバーを明確に示している。こうすることで、最も効果的な設定に焦点を当て、脇道にそれないようにする。私は次のような優先順位をつけている。 ワークロード, レイテンシー要件と効率。これに基づいて、私はBIOS、オペレーティング・システム、アプリケーションについて信頼できる決定を下す。以下の点は、より少ないレイテンシーに直結します。 エネルギー お問い合わせください。.
- 知事選挙連続的な最大周波数の代わりに動的な周波数。.
- ディーブイエフエステンションを調整し、打ち合わせる。.
- 負荷プロファイル本当のピークとアイドルタイムを知る。.
- オートメーションセットアップを恒久的に一定に保つ。.
- 全体像ハードウェア、OS、アプリを一緒に考える。.
CPUの周波数スケーリングとはどういう意味か?
CPUの周波数スケーリングとは、CPUの周波数をダイナミックに調整することである。 タクト そして多くの場合、電圧も現在の作業負荷に合わせる。最近のCPUは、アイドル時には周波数を数百メガヘルツまで下げ、負荷を軽減している。 消費電力 を明確にする。負荷が増加すると、CPUは段階的にクロックレートを上げるか、ブーストによって高域にジャンプする。このダイナミックな動作はDVFSと呼ばれ、周波数と電圧の制御を組み合わせてさらなる効率化を図っている。オペレーティング・システム・レベルでは、ガバナーを使って、負荷の変化に対して周波数がどれだけ積極的に反応するかを決めています。.
サーバー運用におけるCPUガバナーとエネルギープロファイル
私は正しい選択をする 知事 直感ではなく、レイテンシーと効率目標に従う。Linuxでは、パフォーマンス、パワーセーブ、オンデマンド、コンサバティブは、負荷に対する反応がまったく異なる。Windowsでは、最大パフォーマンス、バランス、エコノミーの各モードを、多くの場合BIOSプロファイルを使って決定する。生産性の高いデータベース・サーバーを使用したテストでは、バランス・プロファイルから最大パフォーマンスに切り替えたところ、性能差は約0.5%だった。 20 % [2].この範囲は、エネルギー・プロファイルが応答時間とスループットを形成する程度を示している。.
| ガバナー/プロフィール | レイテンシー | エネルギー必要量 | 代表的な使用例 |
|---|---|---|---|
| パフォーマンス/最高性能 | 非常に低い | 高い | ハードSLA、トレーディング、強力なI/Oバウンド・データベース |
| オンデマンド / バランス | ローミディアム | ミディアム | ウェブホスティング、CI/CD、負荷が変化する仮想化 |
| 保守的 | ミディアム | ローミディアム | ホームラボ、時折ピークを迎える静かなサービス |
| パワーセーブ/省エネモード | より高い | ロー | SLAプレッシャーのないロングラン、アーカイブ、バッチタイプのワークロード |
生産性の高いホストには オンデマンド あるいは、継続的な全負荷がないときは控えめにする。これにより、CPUの速度は十分に保たれるが、アイドル時の電力は顕著に節約される。.
最新のCPUドライバーとプロファイルの微調整
実際には、私はプラットフォームのドライバーと戦略を区別している。 intel_pstate (アクティブまたはパッシブ)、クラシックなセットアップは acpi-cpufreq 使う。AMDの勝利 amd_pstate が重要になってきている。これらのドライバは、どのガバナーが利用可能か、CPUが負荷に対してどの程度速く反応するかに影響する。さらに、Linuxでは スケジューティル を確立した:これは、頻度選択をスケジューラにより密接に連動させるため、短いバーストに対して より正確に反応することが多い。これは、最小頻度が低くなり過ぎない限り、 短いリクエストが多い作業負荷に有利である。.
第二の調整ネジは エネルギー性能優先(EPP) またはエネルギーパフォーマンスバイアス。CPUを積極的にブーストさせるか、控えめにクロックさせるかを微調整するのに使う。Linuxでは、CPUポリシーごとに設定する。Windowsでは、エネルギープロファイル(バランススキームにおけるパーセンテージ値)を使って、効率と応答性を天秤にかける。こうして、「すぐに最大のパフォーマンスを発揮する」と「本当に負荷が持続しているときだけ起動する」の間の特性を形成している。.
クロック、性能、消費電力の関係
私は、サーバーが最も高価な場所に置かれることがないように計画している。 タクト-リージョンが実行されている。CPUのクロックが最大に近くなると、消費は不釣り合いに増加する。 テンション がそれに続く。最後の10-20の%の性能は、しばしば多くのエネルギーを消費するが、日常使用ではほとんど利益をもたらさない。そのため、私は中程度の負荷では連続最大周波数の代わりにダイナミックモードを使用している。リクエストごとのクロックの影響を理解したい場合は、このコンパクトな記事でクロック対コアの背景情報を見つけることができます: クロックレートとコア.
測定と最適化の実際
私は明確なものから始める。 ベースライン-スナップショット:現在のガバナー設定、周波数レベル、アイドル時の消費、負荷カーブ。その後、相関関係がぼやけないように、パラメーターを1つだけ変更して再度測定する。cpupowerやpowertopなどのツールは、仮定ではなく事実を収集するのに役立つ[1]。共有環境では、限界の可能性に注意し、次のような分析を行っている。 CPUスロットリング, もし、目に見える負荷がかからずにレスポンスタイムが向上した場合。最終的には、systemdを使ってチューニングのステップをすべて自動化し、毎回同じようにリブートするようにしている。 設定 ドロー。.
分析に欠かせない指標とツール
私は信頼できる決断を下すために体系的に測定する:
- 頻度とCステート分布CPUがディープアイドル状態で費やす時間、コアのブースト速度は?
- パッケージの電力と温度EPP/最小/最大周波数の影響を検証し、ファンカーブに注目する。.
- 応答時間とスループットの測定基準P50-P99でテール・レイテンシーを認識する。.
- ワークロードの分類CPUバウンド対I/Oバウンド、バースト長、並列度。.
私は、カーネル関連の遠隔測定と外部の測定ポイント(IPMI/PDUなど)を組み合わせて、データセンターとPUEの影響を考慮しています。チューニングが本当に成功するのは、エネルギーとパフォーマンスの数値が同時に向上したときだけです。.
CPUに近い:BIOS/UEFIとファームウェアを正しく設定する
私は多くの効率化をBIOS/UEFIで直接確保している。なぜなら、OSの基礎がここにあるからだ:
- CステートディープCステート(C6/C7)はアイドル時に多くのエネルギーを節約するが、ウェイクアップレイテンシを最小限に抑えることができる。レイテンシを重視するサービスでは、Cステートを完全に無効にするのではなく、許容される最大値をわずかに制限する。.
- ターボ/ブーストアクティブにしたまま、フレームを定義します。最大クロックに緩やかな上限を設けることで、スループットを顕著に損なうことなく、電圧のピークやファンのピークを抑えることができる。.
- エネルギー効率に優れたターボ/EPP連続的なブーストを強いるのではなく、負荷のダイナミクスを考慮したバランスの取れたセッティングを好む。.
- SMT/HTワークロードによる:データベースやウェブスタックは恩恵を受けることが多いが、ハードRTワークロードは恩恵を受けないことがある。私はP99のレイテンシーでこのことを確認している。.
- ファームウェア・アップデートアップデート後はデフォルトをチェックする。オフセットを文書化し、プロファイルを再読み込みすることで、意図しないリグレッションが起こらないようにしている。.
エネルギー効率に優れたサーバー構成のベストプラクティス
私はきれいな状態から始めます。 負荷分析, 例えば、日次、週次カーブ、ピーク時間などだ。その後、ガバナーと最低周波数を設定し、オプションで最大クロックを少し制限してピーク時の消費を滑らかにする。キャッシュを多用するスタックの場合、通常は短いバーストで十分なので、CPUを素早く起動するように設定する。同時に、アイドル周波数を低く保ち、基本負荷が低くなるようにしている。 エネルギー コストです。私はすべての介入策を簡潔に文書化し、応答時間、kWh/日、月あたり€といった明確な目標値に対して測定する。.
LinuxとWindowsのチューニングを実現
Linuxでは、ガードレールを再現性よく設定できた:
- 知事cpupower(systemdユニットまたはディストリビューションツール)を使って恒久的に設定する。.
- 最小/最大周波数スタートアップ・ホール」に対しては保守的な下限値、電圧ピークに対してはわずかに下限値を下げた上限値。.
- EPP/バイアス短いバーストを素早く処理できるようにするためだ。.
- Ondemand/schedutile チューナブル閾値とレートリミットを設定し、周波数のバタつきがないようにする。.
Windowsでは、より細かいエネルギー・プロファイル・パラメーターで作業します。バランスド・プロファイルでは、CPUコアの最小性能を大幅に下げ、最大性能を100 %よりわずかに低いままにし、プロセッサ性能拡張(エネルギー優先)を「バランスド」に設定する。こうすることで、恒久的に高い周波数で動作させることなく、システムの俊敏性を保つことができる。.
レイテンシ・ジッター、Cステート、割り込み
テールレイテンシは、多くの場合、深いCステート、タイマーの粒度、割り込みの分散の組み合わせによって引き起こされる。そのため、私は3つのアプローチをとっている:
- 最大Cステート P99のジッターが干渉する場合は、最低周波数を制限するか、わずかに上げる。.
- IRQアフィニティ およびNUMAトポロジーに対応します:ネットワークカードとメモリクリティカルなIRQを、関連するワークロードのNUMAドメインに一致するコアにバインドします。.
- スケジューラの分離 バックグラウンド・ジョブが干渉しないように、非常にセンシティブなサービス(分離されたコア)のために。.
目標は変わらない:可能な限りアイドルの深さを、必要な限りジッターを少なくすることだ。私は正しいバランスを、直感ではなくメトリクスに還元する。.
サーバーの効率を総合的に考える
効率化とは、「効率化」だけでは終わらない。 CPU. .電源ユニットは80PLUS Gold/Platinumでテストし、最新のSSDを使用し、RAMは適切なサイズに設定しています。仮想化によってサービスを統合することで、数台のホストだけが容量いっぱいまで使用され、効率的に作業できるようにしています。ソフトウェア面では、キャッシュ、無駄のないウェブサーバー設定、最新のPHPバージョンでCPUサイクルを節約しています。クロックスピード、キャッシュ、マイクロアーキテクチャについてもっと深く知りたい人は、このコンパクトな概要が役に立つだろう: CPUアーキテクチャとキャッシュ.
仮想化、コンテナ、クラウドの側面
仮想化環境では、周波数管理は次のようになる。 ホストレベル. .ゲストはポリシーを要求できますが、ハイパーバイザーが決定します。そのため、ホスト上で一貫性のあるプロファイルを設定し、CPUの固定と適切なvCPU割り当てで予測可能な動作を保証する。コンテナでは、CPUクオータ/バーストとレイテンシ要件のバランスをとる。クオータがきつすぎるとブースト効果を防ぎ、寛大すぎると周波数カーブが不安定になる。ミックスドフリートでは、クリティカルなサービスは保守的な最低周波数と活性化されたブーストを持つノードにカプセル化し、バッチワークロードはまばらにチューニングされたホストで実行します。クラウド環境では、インスタンスクラスが周波数とブーストの自由を許可しているかどうかをチェックします。.
性能対消費電力:正しい妥協点
体重 レイテンシー やみくもに最大値にこだわるのではなく、コストと照らし合わせる。レイテンシーに敏感なシステムは、予算と冷却がサポートできる限り、パフォーマンスライクなプロファイルでうまく機能する。ウェブホスティングや社内ツール、ホームラボの場合は、オンデマンドか保守的なものを選びます。こうすることで、レスポンスタイムを最高値に近づけつつ、アイドル時には大幅に節約することができる。このアプローチでは サーマル その結果、部品の寿命が著しく延びることが、これまでの経験で明らかになっている。.
日常生活における監視と自動化
私は、繰り返し可能な持続的な成功を保証する。 ワークフロー. .周波数、Cステート、パッケージ・パワー、温度などのメトリクスを一元的に記録している。プロファイルが誤って変更されたり、ファームウェアのアップデートでデフォルトがリセットされたりすると、アラートが発生します。繰り返し実行されるジョブは、リブート後も同じエネルギー・フラグを設定し、逸脱が生じないようにしています。これにより、比率は パフォーマンス と消費は長期的に安定している。.
アンチパターンとよくあるエラーの原因
私は一貫してそれを避けてきた:
- 継続的なパフォーマンス・プロフィール 利便性のため:電気を食い、部屋を暖め、実益はほとんどない。.
- 最低周波数が低すぎる, これは短いバーストを遅くし、P99のレイテンシーを悪化させる。.
- 協調性のないBIOSの変更 ドキュメントがなければ、アップデート後の混乱は避けられない。.
- 再測定なしのワンオフ・チューニングワークロードが変われば、プロファイルもそれに従わなければならない。.
最適化されたスケーリングによるホスティング顧客のメリット
優れたエネルギー・プロファイルは、次のようなことに直接的な影響を与える。 安定性 と予測可能性。ブースト時間を短縮することでページの応答性を維持し、アイドル周波数を下げることでコストを削減する。廃熱が少ないため、サーマルピークが最小限に抑えられ、スロットリングの可能性が低くなります。顧客は、より均一な時間と、ピーク負荷時のリスクの低い崖でこれに気づく。トランスペアレントなホスティング 効率性-ステップとハードウェアの生成をオープンに、わかりやすく。.
節約の具体的な計算例
永久保存版 消費 20Wの場合、年間約175kWh(24×365)に相当する。1kWhあたり0.30ユーロとすると、サーバー1台あたり年間52.50ユーロの節約になる。100台のホストがある場合、年間5,250ユーロの節約になる。ブーストピークも少し制限すれば、温度はより低く保たれ、ファンはより静かに作動する。この単純な計算が示すのは CPU-スケーリングは原価計算に直接影響する。.
副作用のない実践的なチューニング・ステップ
最初は控えめに設定した。 最低周波数, ウェイクアップが遅く感じられないようにね。それから、短いピークがすぐに処理されるようにしきい値を設定している。パワートップの最適化は自動的に有効にしますが、再起動後の持続性もチェックします。BIOSプロファイルについては、ファームウェアのアップデートでデフォルトが変更される可能性があるため、すべての変更を文書化している。定期的な抜き打ちチェックで、以下を確認している。 ワークロード プロフィールを再編成する必要がある。.
実践事例:生のパワーから測定可能な効率へ
トラフィックが激しく変動するウェブとAPIのスタックは、当初は最大パフォーマンスで動作していた。アイドル時の消費電力は約85W、APIのP95レイテンシは38msだった。ondemand/schedutilに切り替えた後、最低周波数は最低アイドルレベルをわずかに上回り、最大クロックにわずかな上限を設けたところ、アイドル時の消費電力は~65Wに低下した。P95のレイテンシは37~39msで安定しており、P99のレイテンシはIRQアフィニティを調整した後にわずかに改善した。結論:~175kWh/年の節約、同一のユーザーエクスペリエンス、より静かなファン。これはまさに私が目指しているバランスです:製品への影響をリスクにさらすことなく、問い合わせ1件あたりのエネルギーを削減することです。.
簡単にまとめると
私はこうしている。 CPU-スケーリングにより、静音時には電力を節約し、必要な時にはミリ秒単位で電力を放出する。重要なのは、明確な測定、適切なガバナー、一貫した自動化である。クロック、電圧、ブーストをインテリジェントに制限すれば、リクエストあたりのエネルギーは顕著に削減されます。同時に、ウェブサイトやデータベースの応答時間は安定したままです。削減方法 コスト, ハードウェアを保護し、持続可能なホスティング環境を実現します。.


