web-dev-qa-db-ja.com

「オンデマンド」CPUスケーリングデーモンを無効にする

10.04へのアップグレードの時点で、「オンデマンド」CPUスケーリングデーモンを実行しているサーバーがあります。なぜこれが自動的にインストールされるのですか?パフォーマンスを犠牲にしてサーバーの電力を節約したくありません。

/etc/init.d/ondemand(Georgeが提案)スクリプトの実行を無効にする代わりに、thisコマンドを使用する必要があります。

Sudo update-rc.d ondemand disable

Initシステムがスクリプトを開始しないようにするには、これが認識されている方法です!パッケージが更新されると、exec許可(Sudo chmod -x /etc/init.d/ondemand)を無効にすると上書きされる場合があります。

32
LassePoulsen

周波数スケーリングは静的ではありません。実行する作業があるとすぐに、CPUホップが実行され、Pステートがブーストし、すべてが飛びます。

良いものとして広く見られているため、有効になっています。エネルギーを節約します(財布と環境に良い)。ヒートダウンを維持します(soサーバールームでは重要)。そして、それはかなり目立たない。

さらに、最新のIntelチップでは、スケーリングを行う場合、1つのコアが一時的に在庫よりも高速で実行される「ターボブースト」を使用できます。これは、シングルスレッドの作業が急増する場合に非常に便利です。スケーリングを有効にしないと、これを取得できません。

5
Oli

すべてのCPUをパフォーマンスガバナーに設定します。

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | Sudo tee $GOVERNOR; \
done

Linuxカーネルがサポートするすべてのガバナー:

  • performanceCPUを最大周波数で実行します。
  • powersaveCPUを最小周波数で実行します。
  • userspaceユーザーが指定した周波数でCPUを実行します。
  • ondemand現在の負荷に応じて周波数を動的にスケーリングします。最も高い周波数にジャンプしてから、アイドル時間が長くなると元に戻ります。
  • conservative現在の負荷に応じて周波数を動的にスケーリングします。オンデマンドよりも徐々に周波数をスケーリングします。
  • schedutilスケジューラー駆動のCPU周波数選択

https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt を参照してください

2
Mrskman

rcconf debianツールをインストールできます:

Sudo apt-get install rcconf

次に、そこから「オンデマンド」サービスを無効にします。

2
Manuel

UbuntuデスクトップまたはサーバーですべてのCPUを最大パフォーマンスで継続的に実行するには、次を実行します。

Sudo chmod -x /etc/init.d/ondemand

シェルプロンプトでパスワードを入力します。これにより、すべてのCPUを「OnDemand」の速度で実行するシェルスクリプトが無効になり、デフォルトで全速度(パフォーマンス)になります。これを有効にするには、再起動する必要があります。

これはUbuntu Jaunty 9.04でしかテストしていませんが、どのバージョンのUbuntuでも問題なく動作するはずです。

Ubuntuのデフォルトはこれには奇妙だと思います。私の意見では、デスクトップまたはサーバーはフルスピードで実行する必要があります。

よろしく、ジョージ

1

一部のシステムでは、「オンデマンド」ガバナーが残念ながら壊れています。

これは、「Intel(R)Core(TM)2 Quad CPU Q9300 @ 2.50GHz」およびカーネル2.6.32-42の場合です。

カーネルは、各CPUに個別に周波数を設定できると考えていますが、ハードウェアは実際には複数のCPUのグループ(たとえば、CPU 0と1を同時に、CPU 2と3を一緒に)でのみ周波数を設定できます。

「0」、「1」、「2」、「3」を含む/ sys/devices/system/cpu/cpu */cpufreq/affected_cpusファイルを調べると、カーネルがこれを認識していないことがわかります。 「0 1」、「0 1」、「2 3」、「2 3」の代わりに。

このミスマッチの目に見える効果は、1つのCPUでフルスピードの実行を開始するシングルスレッドプロセスであり(「オンデマンド」ガバナーは高速に反応します)、その後、約20秒後に(設定の詳細に応じて)速度の一部が失われます。

その理由は、OSが「オンデマンド」ガバナーを使用して、アイドルCPUに低周波数を定期的に再適用するためであり、ビジー状態のCPUの周波数を暗黙的に変更するとは考えていません。/sys/devices/system/cpu/cpu */cpufreq/* cur_freqまたは/ proc/cpuinfoを見ても見えません。OSはそれを認識していません!

したがって、これらのシステムでは、ソリューションは単純な「パフォーマンス」ガバナーに切り替えることです。

PS:私の場合、CPUを常に最高周波数で動作させても、ファンのノイズに関して何も変わりませんでした。 CPUがアイドリングしているとき、低い周波数でも高い周波数でも電力使用量に大きな影響はないと思います。

1
Johan Boulé

新しいプロセッサAMD Athlon II X4 631(ソケットFM1用のFusionプロセッサ)を使用していますが、エネルギーをまったく節約できません(エネルギーメーターで調べました)。ターボコアがないため、オンデマンド設定は必要ありません。ほとんどの新しいプロセッサは、それ自体でエネルギーを節約します。

ベンチマーク時に、オンデマンドとパフォーマンス設定を比較すると、1〜2%の範囲でわずかな違いがあります。

0
Don sild