如何更改默认调速器?


12

我想将pi上的默认调控器从ondemand更改为Performance。有办法吗?

Answers:


21

我认为您可以在不重新编译内核的情况下更改默认值。我的意思是,内核在启动时选择一个。

但是,您可以告诉它在运行时使用其他调控器,因此,如果您想有效地设置默认值而无需重新编译,则可以向/etc/rc.local或其他一些启动脚本中添加内容。

/sys目录不在磁盘上;它是一个在RAM中伪造的文件系统,实际上是一个用于从内核获取信息并将命令发送到内核的接口。这都是相对于的/sys/devices/system/cpu,因此:

> cd /sys/devices/system/cpu

您还必须是root才能进行写(echo blahblah >)。无论如何,相对于上述目录,查看可用的调控器:

> 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!不同)以前为用于配置ondemand调控器的文件句柄,该目录为空。


知道了...

在Raspbian上有一个名为init的初始化脚本raspi-config(不,它与另一个脚本无关,该脚本由也令人困惑的首次启动运行apply_noobs_os_config.sh),该脚本使用此技术将调控器设置为,ondemand除非使用shift键被压下(Raspbian内核已powersave编译进去)。它没有做任何其他事情,因此可以安全地禁用此(systemctl disable raspi-config),也可以按照Gorkamorka的回答对其进行编辑,但是却冒着无法通过系统更新等对其进行编辑的风险。知道有人打算怎么做。

您可以尝试将上述非sudo版本添加到中/etc/rc.localraspi-config脚本退出后可能会发生这种情况。


评论不作进一步讨论;此对话已转移至聊天
金发姑娘

2
而是需要切换到root用户,只需使用teeecho performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
假名称

2
其他方式:须藤SH -c “回声性能> CPU0 / CPU频率/ scaling_governor”
Moonchild

由于Raspbian基于Debian,因此您应该能够找到软件包cpufrequtilssysfsutils。安装它们之后,你可以设置从州长和其他参数/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
这实际上不是一个问题的答案,“我怎么从按需性能(它们是两个改变州长不同州长)。
金发姑娘

1
@goldilocks我认为此答案仍对问题有所帮助,因为它说明了如何使一个行为与另一个行为相同。
德米特里·格里戈里耶夫

2

另一种解决方案(如果您正在运行Raspbian)可能是修改/etc/init.d/raspi-config中的init.d脚本以始终禁用缩放调节器。它的默认行为是仅在按下某个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

回显“性能” | sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor


尽管这可能会回答问题,但好的答案需要比您在此处提供的更多信息。此外,您的答案并不代表上述答案尚未提供的任何内容。
史蒂夫·罗比拉德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.