我是 Ubuntu 新手,想禁用 turbo boost。我试过了,cpufreq
但无法让它工作。还有其他方法吗?
在 Windows 中,这就像将 CPU 速度从 100 更改为 99 一样简单。
答案1
如果您的系统使用 intel_pstate 频率调节驱动程序:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
然后您可以查询涡轮增压的启用或禁用状态:
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
其中 0 表示 turbo 已启用,1 表示已禁用。您可以通过将(作为 sudo)写入同一位置来更改它。
$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1
我从来都不记得位置或者如何正确地做“tee”的事情,所以我更喜欢以 sudo 的形式运行脚本:
$ cat set_cpu_turbo_off
#! /bin/bash
echo "1" > /sys/devices/system/cpu/intel_pstate/no_turbo
$ cat set_cpu_turbo_on
#! /bin/bash
echo "0" > /sys/devices/system/cpu/intel_pstate/no_turbo
答案2
要读取 Turbo Boost 的当前状态,我们需要安装 msr-tools
sudo apt-get install msr-tools
要了解 Turbo Boost 功能是否被禁用,请运行:
rdmsr -pi 0x1a0 -f 38:38
1=disabled
0=enabled
将 i 替换为您的核心编号
笔记: 如果出现以下错误:
rdmsr:open: No such file or directory
然后通过以下命令加载“msr”模块:
sudo modprobe msr
要禁用 Turbo Boost 功能,可以将整个 0x1a0 MSR 寄存器设置为 0x4000850089,如下所示:
wrmsr -pC 0x1a0 0x4000850089
其中 C 指的是特定核心编号
您可以通过运行获取这些数字
cat /proc/cpuinfo | grep processor
然后一旦你知道了你的数字,你必须为每个核心运行上面的命令。在你的例子中,数字将是 0 和 1,所以你必须这样做
wrmsr -p0 0x1a0 0x4000850089
wrmsr -p1 0x1a0 0x4000850089
从http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html
用于禁用/启用涡轮增压的脚本
以下脚本可用于关闭/打开涡轮增压:
#!/bin/bash
if [[ -z $(which rdmsr) ]]; then
echo "msr-tools is not installed. Run 'sudo apt-get install msr-tools' to install it." >&2
exit 1
fi
if [[ ! -z $1 && $1 != "enable" && $1 != "disable" ]]; then
echo "Invalid argument: $1" >&2
echo ""
echo "Usage: $(basename $0) [disable|enable]"
exit 1
fi
cores=$(cat /proc/cpuinfo | grep processor | awk '{print $3}')
for core in $cores; do
if [[ $1 == "disable" ]]; then
sudo wrmsr -p${core} 0x1a0 0x4000850089
fi
if [[ $1 == "enable" ]]; then
sudo wrmsr -p${core} 0x1a0 0x850089
fi
state=$(sudo rdmsr -p${core} 0x1a0 -f 38:38)
if [[ $state -eq 1 ]]; then
echo "core ${core}: disabled"
else
echo "core ${core}: enabled"
fi
done
将其保存到名为turbo-boost.sh
使用方法:您可以复制上述脚本并将其保存到名为 turbo-boost 的文件中,然后将其设置为可执行文件:
sudo chmod +x turbo-boost.sh
然后您可以使用它来禁用/启用涡轮增压:
./turbo-boost.sh disable
./turbo-boost.sh enable
答案3
您可以尝试将/sys/devices/system/cpu/cpufreq/boost
值设置为 0。
echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost
答案4
就我而言,这是有效的:
echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo