如何一次性为所有核心设置 CPU 频率调节调节器?

如何一次性为所有核心设置 CPU 频率调节调节器?

我想一次性为所有核心设置 CPU 频率调节器,而不是为每个核心单独设置。有办法吗?

(我知道回应州长很容易/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor,但我并不是在寻找定制解决方案。)

答案1

我在 Google 上搜索了很多,但我认为这是不可能的,因此我在我的代码中添加了以下一行.bashrc

function setgov ()
{
    echo "$1" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 
}

现在我可以运行类似这样的程序setgov ondemand,所有核心都会切换到一经请求州长。

答案2

我还是 Linux 新手,但你不觉得 cpufrequtils 可以让你通过使用它来做到这一点吗(它没有捆绑在 Ubuntu 操作系统中,但在存储库中)

sudo apt-get install cpufrequtils
sudo cpufreq-set -r -g performance
  • -r标志用于设置所有(“所有硬件相关”)核心的变更

答案3

更改所有核心的调节器的最短命令如下:

sudo bash -c 'for ((i=0;i<$(nproc);i++)); do cpufreq-set -c $i -g performance; done'

您可以将其添加到 .bashrc 中,就像 htorque 提到的那样setgov performance

function setgov ()
{
     for i in {0..7}; 
     do 
         sudo  cpufreq-set -c $i -g $1; # run cpufreq-set with root
     done
}

答案4

我们还不如添加 bash 代码完成功能:

function setgovernor () {
    echo "$1" | sudo tee 
    /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 
}
complete -W "$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors)" setgovernor

相关内容