電源管理/CPU
CPUの周波数スケーリング
CPU周波数スケーリングは、プロセッサの周波数を自動的に電力を節約するために、チップの発熱量を低減するために、「オンザフライ」で調整することができる技術です。
インストール
BIOS
いくつかの機能はBIOSで有効化もしくは無効化できます。次の機能が有効化されている事を確認してください。
- "Processor C1E support"
- "Enhanced Speedstep (EIST)"
カーネル
次のカーネルオプションを有効化してください
Power management and ACPI options ---> [*] ACPI (Advanced Configuration and Power Interface) Support ---> <*> Processor CPU Frequency scaling ---> [*] CPU Frequency scaling Default CPUFreq governor (ondemand) ---> Select a default governor; see below table Default is ondemand *** CPU frequency scaling drivers *** Select a driver; see below table
プロファイルに基づいて周波数を変える役割を持つガバナーというものが必要になります。
オプション | モジュール | サポートされるCPU | 備考 |
---|---|---|---|
'performance' ガバナー | cpufreq_performance | 常にCPUで利用できる最も高い周波数に固定します。 | IntelのCPUに対して、このオプションはデフォルトとして設定されるべきです。[1] [2] |
'powersave' ガバナー | cpufreq_powersave | 常にCPUで利用できる最も低い周波数に固定します。 | デフォルトとして設定できません。 |
'userspace' ガバナー:userspaceにおける周波数スケーリング | cpufreq_userspace | 周波数を手動で設定するとき、もしくはuserspaceのプログラムが動的にCPU周波数を変更できるようにする時に設定します。 | |
'ondemand' 周波数ポリシーガバナー | cpufreq_ondemand | CPUの利用状況に応じて定期的に周波数を変更します。 | Intel以外のCPUに対して、このオプションがデフォルトとして設定されるべきです。 |
'conservative' 周波数ポガバナー | cpufreq_conservative | 'ondemand'に似ています。高い処理速度が要求された時に、100%に直接ジャンプするのではなく段階的に周波数を上げるように、なめらかに周波数を上下させます。 |
使用しているガバナーは次のファイルを参照することで確認できます。: /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_governor
オプション | モジュール | サポートされるCPU | 備考 |
---|---|---|---|
Intel P state control | intel_pstate | SandyBridgeよりも新しいIntel Core | |
Processor Clocking Control interface driver | pcc-cpufreq | ||
ACPI Processor P-States driver | acpi-cpufreq | 古いIntel Core, Intel Atom, Intel Pentium M | |
AMD Opteron/Athlon64 PowerNow! | powernow-k8 | AMD Opteron, AMD Athlon 64, AMD Turion 64 | |
Intel Enhanced SpeedStep (deprecated) | speedstep-centrino | Intel Pentium M (Centrino), Intel Xeon | 問題があります, ACPI Processor P-States driverを代わりに使用してください。 |
Intel Pentium 4 clock modulation | p4-clockmod | Intel Pentium 4, Intel XEON | 深刻な低速化と認知可能なほどの遅延の原因となります。 |
ティック
プロセッサはより長く省電力モードになっていればいるほど、エネルギー消費を抑えられるので、プロセッサを起こすティックの量を減らしてください。利用可能な tickless モードについての詳細はカーネルのドキュメントで読むことができます。
インストール
BIOS
いくつかの機能はBIOS内で有効あるいは無効にすることができます.以下の機能が有効になっているか確認してください:
- "HPET"
- "Multimedia timer"
カーネル
次のカーネルオプションを有効化してください:
Processor type and features ---> [*] Tickless System (Dynamic Ticks) [*] High Resolution Timer Support [*] HPET Timer Support
これらの設定は現在"General setup" -> "Timers subsystem"内にあります。
PowerTOP
PowerTOP は、コンピュータの電力消費を計測し、説明し、最小化するために設計されたユーティリティです。
実行すると、実行中のプロセスを、プロセッサを起こした頻度順にソートして表示します。インストール、設定そして使用法についての詳細は、個別の PowerTOP 記事を参照してください。
Hprofile
単純なコマンドを使ってアクティブな CPU ガバナーを変更することができます:
root #
for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do
echo ondemand >$c/cpufreq/scaling_governor; done
このコマンドを起動時に実行する方法について学ぶには、/etc/local.d/README を読んでください。
sys-power/cpupower などのアプリケーションは、これの上に覆いかぶさるようにちょっとしたインターフェースを備えていて、これよりちょっと多くの仕事をします。しかしながら、システムの利用状況に応じて root として特定のコマンドを実行しなくてはいけないというのは、多くのユーザにとって効率的なものではないでしょう。CPU 周波数ガバナーの決定を、一部自動化するとよいです。例えば、AC 電源に接続されていないときは、多くのユーザはシステムを省電力モードにしたいでしょう。
ここで Hprofile の出番です。さらなる情報と設定については記事を参照してください。
関連項目
外部資料
- What exactly is a P-state? (Pt. 1) - P-states を (一部) 解説している Intel による記事。
- Linux's "Ondemand" Governor Is No Longer Fit - 新しい Intel core プロセッサで ondemand を使うべきでない理由を説明しています。
参照
- ↑ Dominik Brodowski. Intel P-State driver, CPU frequency and voltage scaling code in the Linux(TM) kernel. Retrieved 12 June 2016.
- ↑ Michael Larabel. Linux's "Ondemand" Governor Is No Longer Fit. Retrieved 15 October 2016.