3.2. CPUfreq ガバナーの使用

ご使用のシステムで電力消費と発生熱量を低減する効果的な方法の1つは、CPUfreq を使用することです。CPU 速度スケールとも呼ばれる CPUfreq により、プロセッサーのクロック速度をオンザフライで調節できます。これにより、システムは減速したクロック速度で稼働し、節電します。CPUfreq ガバナーが、クロック速度の変更、周波数を変換する時期の決定といった周波数の変換に関する規則を定義します。
ガバナーは、システムの CPU の電力特性を定義し、これは結果的に CPU のパフォーマンスに影響を与えます。ガバナーには作業負荷に関してそれぞれ特有の動作、目的、および適合性があります。このセクションでは、CPUfreq ガバナーの選択および設定方法、各ガバナーの特性、およびガバナーに適している作業負荷の種類について説明します。

3.2.1. CPUfreq ガバナーのタイプ

このセクションでは、Red Hat Enterprise Linux 6 で利用できる様々な種類の CPUfreq ガバナーについて説明しています。
cpufreq_performance

Performance ガバナーは、CPU が最高クロック周波数を使用するように強制します。この周波数は静的に設定され、変化しないため、このガバナーでは、節電する利点はありません。 このガバナーは、何時間にも渡るような作業負荷が大きい時だけ、しかも CPU がアイドル状態になることがほとんどない (もしくはまったくならない) 時のみに適しています。

cpufreq_powersave

一方、Powersave ガバナーは、CPU が最低クロック周波数を使用するように強制します。この周波数は静的に設定され変化しないため、このガバナーでは最大の節電を実現しますが、CPU パフォーマンスが一番低く なってしまいます。

しかし「節電 (Powersave) 」という用語は時に誤解を招きます。全負荷で遅い CPU は (原則として) 、負荷がない高速の CPU よりも多くの電力を消費します。そのため、低活動が予期できる時には Powersave ガバナーを使用するよう CPU を設定することが推奨されますが、この期間中に予期しない高負荷が発生するとシステムは実際にはより多くの電力を消費することがあります。
Powersave ガバナーは簡単にいうと、CPU にとっては「節電」よりも「スピードリミッター」の意味を持ちます。これは、過熱が問題となる恐れがあるシステムや環境で最も役立ちます。
cpufreq_ondemand

Ondemand ガバナーは動的なガバナーです。システム負荷が大きい時は、CPU は最高クロック周波数を実現し、システムがアイドル状態の時には、CPU は最低クロック周波数を実現します。これにより、システム負荷に対してシステムは電力消費量を適宜調節できますが、そうすることで 周波数変換の間の遅延 が発生してしまいます。そのため、システムがアイドル状態と高負荷の間で頻繁に替わりすぎると、遅延により Ondemand ガバナーが実現できるパフォーマンスおよび/または節電の利点が少なくなる恐れがあります。

ほとんどのシステムでは、Ondemand ガバナーは熱の放出、消費電力、パフォーマンス、および管理のしやすさの間で、最良の妥協策を提供します。1 日の中で特定の時間帯にのみシステムがビジーになる場合は、Ondemand ガバナーはそれ以上介入せずに、負荷に応じて最高周波数と最低周波数の間で自動的に切り替わります。
cpufreq_userspace

Userspace ガバナーにより、ユーザースペースプログラム (または root で実行しているプロセス) は周波数を設定できます。このガバナーは通常、cpuspeed デーモンと併せて使用されます。Userspace ガバナーは、すべてのガバナーの中で最もカスタマイズ可能であり、設定によってはご使用のシステムにパフォーマンスと電力消費との間で最良のバランスを実現します。

cpufreq_conservative

Ondemand ガバナーと同様に、Conservative ガバナーも使用量に応じてクロック周波数を調節します (Ondemand ガバナーと同様です) 。ただし、Ondemand ガバナーがより積極的にクロック周波数を調節するのに対し (最高周波数から最低周波数、そして最高周波数に戻る) 、Conservative ガバナーはもっとゆっくりと調節を行います。

これが意味しているのは、Conservative ガバナーは単に最高と最低の周波数を選択するのではなく、負荷に対して適切と判断するクロック周波数に合わせるということです。これは電力消費に著しく貢献する可能性がありますが、Ondemand ガバナーよりも 長い遅延で 行います。

注記

cron ジョブを使用してガバナーを有効にできます。これにより、1 日のある時間帯にあるガバナーを自動的に設定することができます。そのため、アイドル状態 (例えば終業後) の時には、低周波数のガバナーを指定し、高負荷となる時間帯には高周波数に戻るように設定できます。
特定のガバナーを有効にする方法については、「CPUfreq の設定」手順3.2「CPUfreq ガバナーの有効化」 を参照してください。