デフォルトのガバナーを変更するには?


12

piのデフォルトガバナーをondemandからperformanceに変更したい。これを行う方法はありますか?

回答:


21

カーネルを再コンパイルせずにデフォルトを変更できるとは思わない。つまり、起動時にカーネルが選択するものです。

ただし、実行中に別のガバナーを使用するように指示することができます。そのため、再コンパイルせずにデフォルトを効果的に設定したい場合は、何か/etc/rc.local他の起動スクリプトに追加できます。

/sysディレクトリは、ディスク上にありません。それは、実際にはRAMからの情報を取得したり、カーネルにコマンドを送信したりするためのインターフェースであるRAM内の偽のファイルシステムです。これはすべてに関連する/sys/devices/system/cpuため、次のとおりです。

> cd /sys/devices/system/cpu

また、書き込み(echo blahblah >)を行うにはrootになる必要があります。とにかく、上記のディレクトリに関連して、利用可能なガバナーを確認するには:

> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance

どうやらあなたのものですondemand(ただし、これについては以下の「Gotcha」をお読みください)。チェックする:

> cat cpu0/cpufreq/scaling_governor
ondemand

変更するには:

echo performance > cpu0/cpufreq/scaling_governor

これはrootで行うか、このようにする必要があることに注意してください

sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"

sudoリダイレクトがあるため、単なるプレーンは機能しません>

これで、以前はオンデマンドガバナーを構成するためのファイルハンドルが含ま/sys/devices/system/cpu/cpufreqれていたディレクトリ(/sys/devices/system/cpu/cpu0/cpufreq!と同じではありません)が空になっていることがわかります。


ガッチャ...

Raspbianにinitスクリプトがあり、紛らわしい名前のraspi-config(いや、それはまた紛らわしいという名前で最初の起動時に実行され、他の1、とは何の関係もありませんapply_noobs_os_config.sh)に知事を設定するには、この技術を使用するondemandシフトキーない限り、押されている(Raspbianカーネルがpowersaveコンパイルされている)。それは他に何もしないので、これを無効にしても安全systemctl disable raspi-configです()、またはGorkamorkaの回答に従って編集することもできますが、システムの更新などによって編集されないリスクが発生します-誰誰もがそれをどうするつもりかを知っています。

上記の非sudoバージョンをに追加してみてください/etc/rc.local。これは、raspi-configスクリプトが終了した後に発生する場合があります。


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
goldilocks

2
代わりに、ルートに切り替える必要がありますtee:を使用しますecho performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
偽の名前

2
その他の方法:sudo sh -c "echo performance> cpu0 / cpufreq / scaling_governor"
ムーンチャイルド

RaspbianはDebianに基づいているため、パッケージcpufrequtilsとを見つけることができるはずsysfsutilsです。それらをインストールした後、から知事や他のパラメータを設定することができます/etc/default/cpufrequtilsし、/etc/sysfs.conf: -ここを参照してくださいwiki.debian.org/HowTo/CpuFrequencyScalingを
mbirth


3

RPiスタック交換に関する同様の質問はこちら。

言い換えると、CPUが95%使用されていると、オンデマンドの速度が最大になります。次の方法で、ビジー時間をより低いパーセンテージに減らすことができます(ビジーではない場合に、より多くの時間を記録します)。

「整数値をファイルに書き込む(たとえば、/ etc / rc.localスタートアップファイルに以下を配置できます):echo 60> / sys / devices / system / cpu / cpufreq / ondemand / up_threshold」

したがって、理論的には、このパーセンテージを10または5などの非常に低い値に設定することができます。つまり、常に最大で実行されることになります。

お役に立てれば。リンクされた記事でこれを投稿した人を必ずスコアアップしてください!


3
それはどのように私は(彼らは2人のですから、オンデマンドのパフォーマンスに知事を変更できますか」、実際の質問への答えではありません異なる。知事)
ゴルディロックス

1
@goldilocksこの答えは、一方をもう一方のように動作させる方法を説明しているので、クエシトンに有用な何かがまだ追加されていると思います。
ドミトリーグリゴリエフ

2

別の解決策(Raspbianを実行している場合)は、/ etc / init.d / raspi-configのinit.dスクリプトを変更して、スケーリングガバナーを常に無効にすることです。デフォルトの動作は、シフトキーのいずれかが押されている場合にのみ起動時に有効にすることです。

#!/bin/sh
### BEGIN INIT INFO
# Provides:          raspi-config
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Switch to ondemand cpu governor (unless shift key is pressed)
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Checking if shift key is held down"
    timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"
    if [ $? -eq 0 ]; then
      printf " Yes. Not enabling ondemand scaling governor"
      log_end_msg 0
    else
      printf " No. Switching to ondemand scaling governor"
      SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor      if [ -e $SYS_CPUFREQ_GOVERNOR ]; t
hen
        echo "ondemand" > $SYS_CPUFREQ_GOVERNOR
        echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
        echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
        echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
        echo 1 | sudo tee /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
      fi
      log_end_msg 0
    fi
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac

-3

エコー「パフォーマンス」| sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor


これで質問に答えることができますが、良い答えには、ここで提供した情報よりも多くの情報が必要です。また、あなたの答えは、上記の答えがまだ提供していないものではありません。
スティーブロビラード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.