3.2. CPUfreq
3.2.1. CPUfreq ドライバー
ACPI CPUfreq
Intel P-state
max_perf_pct
: ドライバーが要求する最大 P ステートを制限し、利用可能なパフォーマンスのパーセンテージで表します。利用可能な P-state パフォーマンスは、no_turbo 設定により削減できます (以下を参照)。min_perf_pct
: min_perf_pct: ドライバーによって要求される最小 P ステートを制限します。最大 (ターボなし) パフォーマンスレベルのパーセンテージで表されます。no_turbo
: ドライバーがターボ周波数範囲未満の P ステートを選択するように制限します。turbo_pct
: ターボ範囲内のハードウェアによってサポートされる合計パフォーマンスの割合を表示します。この数は、ターボが無効になっているかどうかに関係ありません。num_pstates
: ハードウェアによってサポートされている P ステートの数を表示します。この数は、ターボが無効になっているかどうかに関係ありません。
intel_pstate=disable
3.2.2. CPUfreq ガバナー
3.2.2.1. コア CPUfreq ガバナー
cpufreq_performance
パフォーマンスガバナーは、CPU が可能な限り高いクロック周波数を使用するように強制します。この頻度は静的に設定され、変更されません。このため、この特定のガバナーでは 省電力の利点はありません。これは、数時間の負荷の高いワークロードにのみ適しています。その場合でも、CPU がめったに (またはまったく) アイドル状態にならない時間帯にのみ適しています。
cpufreq_powersave
対照的に、Powersave ガバナーは、CPU が可能な限り低いクロック周波数を使用するように強制します。この頻度は静的に設定され、変更されません。そのため、この特定のガバナーは電力を最大限に節約できますが、CPU パフォーマンスが最も低く なります。
cpufreq_ondemand
Ondemand ガバナーは動的なガバナーであり、システム負荷が高いときに CPU が最大クロック周波数を達成し、システムがアイドル状態のときに最小クロック周波数を達成できるようにします。これにより、システムはシステム負荷に応じて消費電力を調整できますが、周波数切り替えの間の待ち時間 はかかります。このため、システムがアイドル状態と高負荷のワークロードを頻繁に切り替える場合、レイテンシーは、Ondemand ガバナーが提供するパフォーマンスや省電力の利点を相殺することができます。
cpufreq_userspace
Userspace ガバナーを使用すると、ユーザー空間プログラム、または root で実行しているプロセスで頻度を設定できます。すべてのガバナーの中で、Userspace は最もカスタマイズ可能で、設定方法に応じて、システムのパフォーマンスと消費の最適なバランスを実現できます。
cpufreq_conservative
Ondemand ガバナーと同様に、Conservative ガバナーも使用状況に応じてクロック周波数を調整します。ただし、Ondemand ガバナーはより早く (つまり、最大から最小へ、またその逆) 切り替えますが、Conservative ガバナーはより時間をかけて周波数を切り替えます。
3.2.2.2. Intel P-state の CPUfreq ガバナー
- ハードウェア管理の P 状態 (HWP) によるアクティブモード
- ハードウェア管理の P 状態 (HWP) を使用しないアクティブモード
- パッシブモード
Active mode with hardware-managed P-states
- パフォーマンス
- Powersave
Active mode without hardware-managed P-states
- パフォーマンス
- Powersave
パッシブモード
3.2.3. CPUfreq セットアップ
~]# cpupower frequency-info --governors
~]# cpupower frequency-set --governor [governor]
~]# cpupower -c 1-3,5 frequency-set --governor cpufreq_userspace
3.2.4. CPUfreq ポリシーと速度の調整
- --freq — CPUfreq コアに応じた CPU の現在の速度を KHz 単位で表示します。
- --hwfreq — ハードウェアに応じた CPU の現在の速度を KHz 単位で表示します (root としてのみ使用可能)。
- --driver — この CPU の周波数を設定するためにどの CPUfreq ドライバーが使用されているかを示します。
- --governors — このカーネルで使用可能な CPUfreq ガバナーを表示します。このファイルにリストされていない CPUfreq ガバナーを使用する場合は、その方法を 「CPUfreq セットアップ」 で参照してください。
- --affected-cpus — 周波数調整ソフトウェアを必要とする CPU をリストします。
- --policy — 現在の CPUfreq ポリシーの範囲 (KHz 単位)、および現在アクティブなガバナーを表示します。
- --hwlimits — CPU で使用可能な周波数を KHz 単位でリストします。
/sys/devices/system/cpu/cpuid/cpufreq/
にある調整パラメーターで CPUfreq 設定を確認できます。設定および値は、この調整可能パラメーターに書き込むことで変更できます。たとえば、最小クロック速度の cpu0 から 360 KHz を設定するには、次のコマンドを使用します。
echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq