在 ubuntu 中禁用 Intel Turbo Boost

Iva*_*ylo 28 cpu

我是 Ubuntu 的新手,想禁用涡轮增压。我试过,cpufreq但我不能让它工作。有没有其他方法可以做到。

在 Windows 中,就像将 CPU 速度从 100 更改为 99 一样简单。

Dou*_*ies 54

如果您的系统使用 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
Run Code Online (Sandbox Code Playgroud)

然后您可以查询涡轮启用或禁用状态:

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
Run Code Online (Sandbox Code Playgroud)

其中 0 表示启用 turbo,1 表示禁用。您可以通过将(作为 sudo)写入相同的位置来更改它。

$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1
Run Code Online (Sandbox Code Playgroud)

我从不记得位置或如何正确执行“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
Run Code Online (Sandbox Code Playgroud)

  • @Cirelli94 - 即便如此:`sudo echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo 1 tee:/sys/devices/system/cpu/intel_pstate/no_turbo:不允许操作` (2认同)

May*_*hux 25

要读取 Turbo Boost 的当前状态,我们需要安装 msr-tools

sudo apt-get install msr-tools
Run Code Online (Sandbox Code Playgroud)

要知道 Turbo Boost 功能是否被禁用,请运行:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled
Run Code Online (Sandbox Code Playgroud)

用你的核心数替换 i


注意: 如果出现以下错误:

rdmsr:open: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后通过以下命令加载“msr”模块:

sudo modprobe msr
Run Code Online (Sandbox Code Playgroud)

要禁用 Turbo Boost 功能,可以将整个 0x1a0 MSR 寄存器设置为 0x4000850089,如下所示:

wrmsr -pC 0x1a0 0x4000850089
Run Code Online (Sandbox Code Playgroud)

其中 C 指的是特定的核心编号

你可以通过运行获得这些数字

cat /proc/cpuinfo | grep processor
Run Code Online (Sandbox Code Playgroud)

然后一旦你知道你的数字,你就必须为每个核心运行上面的命令。在你的情况下数字将是 0 & 1 所以你必须做

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089
Run Code Online (Sandbox Code Playgroud)

解决方案代表这个博客


来自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
Run Code Online (Sandbox Code Playgroud)

将此保存到一个名为 turbo-boost.sh

用法:您可以将上述脚本复制并保存到名为 turbo-boost 的文件中,然后将其设置为可执行:

sudo chmod +x turbo-boost.sh
Run Code Online (Sandbox Code Playgroud)

然后您可以使用它来禁用/启用涡轮增压:

./turbo-boost.sh disable
./turbo-boost.sh enable
Run Code Online (Sandbox Code Playgroud)