Як змінити губернатор за замовчуванням?


12

Я хочу змінити губернатор за замовчуванням на моєму пі від вимоги до продуктивності. Чи є спосіб зробити це?

Відповіді:


21

Я не думаю, що ви можете змінити типовий режим, не перекомпілювавши ядро. Під цим я маю на увазі те, яке вибирає ядро ​​під час завантаження.

Однак ви можете сказати йому використовувати інший регулятор під час запуску, тому, якщо ви хочете ефективно встановити типовий засіб без перекомпіляції, ви можете додати щось до /etc/rc.localчи інший сценарій запуску.

/sysКаталогу немає на диску; це фальшива файлова система RAM, яка насправді є інтерфейсом для отримання інформації та відправки команд до ядра. Це все відносно /sys/devices/system/cpu, так:

> cd /sys/devices/system/cpu

Вам також потрібно мати root, щоб зробити write ( echo blahblah >). У будь-якому випадку відносно вищевказаного каталогу, щоб переглянути доступні регулятори:

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

Мабуть, ваш є ondemand(але читайте "Готча" нижче про це); перевіряти:

> cat cpu0/cpufreq/scaling_governor
ondemand

Щоб змінити його:

echo performance > cpu0/cpufreq/scaling_governor

Зауважте, це або має бути виконано корінь, або так

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(ні, він не має нічого спільного з іншим, який запускається під першим завантаженням також заплутаним іменем apply_noobs_os_config.sh), який використовує цю техніку для встановлення губернатора, ondemandякщо не клавіша shift утримується (запас ядра Raspbian powersaveскладено в). Він не робить нічого іншого, тому безпечно відключити це ( systemctl disable raspi-config), або ви можете відредагувати це відповідно до відповіді Горкаморки , але тоді ви ризикуєте його відредагувати оновленням системи тощо - хто знає, що хто планує з цим робити.

Ви можете спробувати додати версію non-sudo до версії /etc/rc.local. Це може статися після закінчення raspi-configсценарію.


Коментарі не для розширеного обговорення; ця розмова була переміщена до чату .
золотинки

2
Замість того вимагають перемикання на корінь, просто використовувати tee: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor.
Підроблене ім’я

2
Інший спосіб: sudo sh -c "echo performance> cpu0 / cpufreq / scaling_governor"
Moonchild

Оскільки Raspbian заснований на Debian, ви повинні мати можливість знайти пакети cpufrequtilsта sysfsutils. Після їх встановлення ви можете встановити губернатор та інші параметри з /etc/default/cpufrequtilsі /etc/sysfs.conf- дивіться тут: wiki.debian.org/HowTo/CpuFrequencyScaling
mbirth


3

подібне питання щодо обміну стеками RPi тут.

Якщо перефразовувати це, швидкість попиту піднімається до максимуму, коли процесор на 95% зайнятий. Ви можете знизити кількість зайнятого часу до нижчого відсотка (це означає, що він буде набирати більше, коли не такий зайнятий):

"запис цілого значення у файл (ви можете поставити таке, наприклад, у файл запуску /etc/rc.local): echo 60> / sys / devices / system / cpu / cpufreq / ondemand / up_threshold"

так, теоретично ... ви можете поставити цей відсоток на щось неймовірно низьке, як 10 або 5, що означатиме, що він завжди працює на макс.

Сподіваюсь, це допомагає. Не забудьте підбити бал того, хто опублікував це у пов’язаній статті!


3
Це на самому ділі не є відповіддю на питання, «як я можу змінити губернатора від OnDemand до продуктивності (це дві різні губернатори).
Золотоволоска

1
@goldilocks Я думаю, що ця відповідь все-таки додає запитання щось корисне, оскільки це пояснює, як змусити одного поводитись як інший.
Дмитро Григор’єв

2

Альтернативним рішенням (якщо ви використовуєте Raspbian) може бути зміна сценарію init.d в /etc/init.d/raspi-config, щоб завжди відключити регулятор масштабування. Це поведінка за замовчуванням - це ввімкнути її лише при запуску, якщо натискається одна з клавіш shift:

#!/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

echo "performance" | sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / skaliranje_governor


Хоча це може дати відповідь на запитання, для хороших відповідей потрібна більше інформації, ніж ви вказали тут. Крім того, ваша відповідь не означає, що вищенаведені відповіді ще не надані.
Стів Робільярд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.