我想一次性为所有核心设置 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