cpufreq - 如何为所有内核设置CPU频率调控器?

分享于 

2分钟阅读

ubuntu

  繁體

问题

我想一次为所有内核设置CPU频率,而不是为每个内核单独设置。有什么方法可以做到?

/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor


答案1


sudo apt-get install cpufrequtils


sudo cpufreq-set -r -g performance



  • -r标志用于设置所有("所有硬件相关的")内核的更改

  • 答案2

    我在.bashrc中添加了以下一行程序:

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

    现在,我可以运行类似setgov ondemand的东西,所有内核都将切换到ondemand调控器。


    答案3

    更改所有内核调控器的最短命令如下:

    
    sudo bash -c 'for i in {0..7}; do cpufreq-set -c $i -g performance; done'
    
    
    
    
    
    function setgov ()
    
    
    {
    
    
     for i in {0..7}; 
    
    
     do 
    
    
     cpufreq-set -c $i -g $1; 
    
    
     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
    
    
    
    

    答案5

    我编写了一个简单的脚本cpufreq-set-all,它允许使用所有cpufreq-set执行其他CPU操作:

    
     #!/bin/bash
    
    
     MAX_CPU=$((`nproc --all` - 1))
    
    
     for i in $(seq 0 $MAX_CPU); do
    
    
     echo"Changing CPU" $i" with parameter"$@;
    
    
     cpufreq-set -c $i $@ ;
    
    
     done
    
    
    
    

    现在可以像这样调用(在chmod +x之后):

    
    cpufreq-set-all -g powersave
    
    
    
    

    或者

    
    cpufreq-set-all -f 800Mhz
    
    
    
    


    SET  SCA  CORE  CPU  比例  ONCE