Desabilitando o Intel Turbo Boost no ubuntu

17

Eu sou novo no Ubuntu e quero desativar o turbo boost. Eu tentei com cpufreqmas não consigo fazê-lo funcionar. existe alguma outra maneira de fazer isso.

No Windows, era tão fácil quanto mudar a velocidade da CPU de 100 para 99.

Ivaylo
fonte
qual é o seu modelo de CPU?
611 Ron
@ Ron: é a CPU Intel (R) Pentium (R) B960 a 2.20GHz, obtive as informações do chat para o qual eles se mudaram. Eu acho que realmente não importa, o que importa é qual driver de dimensionamento está sendo usado. Atualmente (que é diferente do passado), o padrão será intel_pstate se o processador suportar.
Doug Smythies
galera, tentei: sudo cpupower frequency-set -g powersave e ele diz: Setting cpu: 0 Setting cpu: 1 Então, onde colocar qual núcleo alterar? :)
Ivaylo
Independentemente de qual driver de dimensionamento você estiver usando, o turbo ativado ou não é uma configuração global, um ponto abrange todas as CPUs. Eu mesmo, só uso comandos primitivos, nunca ferramentas de nível superior, como cpupower.
Doug Smythies

Respostas:

18

Para ler o estado atual do Turbo Boost, precisamos instalar o msr-tools

sudo apt-get install msr-tools

Para saber se o recurso Turbo Boost está desativado, execute:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Substitua i pelo seu número de núcleos


NOTA: Se você receber o seguinte erro:

rdmsr:open: No such file or directory

depois carregue o módulo "msr" pelo seguinte comando:

sudo modprobe msr

Para desativar o recurso Turbo Boost, é possível definir o registro 0x1a0 MSR inteiro como 0x4000850089, como aqui:

wrmsr -pC 0x1a0 0x4000850089

Onde C se refere a um número principal específico

ou você pode obter esse número executando

cat /proc/cpuinfo | grep processor

depois que você souber seus números, precisará executar o comando acima para cada núcleo. no seu caso, os números seriam 0 e 1, então você tem que fazer

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

Solução para este blog


From http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html

Um script para desativar / ativar o turbo boost

O script a seguir pode ser usado para ativar / desativar o turbo boost:

#!/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

salve isso em um arquivo chamado turbo-boost.sh

Uso: Você pode copiar o script acima e salvá-lo em um arquivo chamado turbo-boost e configurá-lo para ser executável:

sudo chmod +x turbo-boost.sh

você pode usá-lo para desativar / ativar o turbo boost:

./turbo-boost.sh disable
./turbo-boost.sh enable
Maythux
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Mitch
$ rdmsr -pi 0x1a0 -f 38:38fornece apenas uma lista de opções para usar com o comando por exemplo: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....A sintaxe acima está desatualizada / não é aplicável de maneira geral?
219199 Sir Hennihau
30

Se o seu sistema estiver usando o driver de escala de frequência 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

Em seguida, você pode consultar o status de turbo ativado ou desativado:

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0

Onde 0 significa que o turbo está ativado e 1 significa que está desativado. E você pode alterá-lo gravando (como sudo) no mesmo local.

$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1

Eu nunca me lembro da localização ou como fazer a coisa `tee 'corretamente, então prefiro que os scripts sejam executados como 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
Doug Smythies
fonte
Se você tiver problemas com permissões, tentesudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94
Isso pode ser definido permanentemente, para permanecer após a reinicialização?
Alexey
@ Alexey: Se você quiser que seja permanente, então eu sugiro fazê-lo no BIOS. Caso contrário, faça o set_cpu_turbo_offscript acima ser executado durante a inicialização.
Doug Smythies
11
@ Cirelli94 - mesmo assim:sudo echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo 1 tee: /sys/devices/system/cpu/intel_pstate/no_turbo: Operation not permitted
11
Por alguma razão, isso não tem nenhum efeito para mim no Ubuntu Server 14. sudo wrmsr --all 0x1a0 0x4000850089faz o truque.
Sudo
2

Você pode tentar definir o /sys/devices/system/cpu/cpufreq/boostvalor como 0.

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost
Ron
fonte
11
ele diz que não existe tal arquivo ou diretório
Ivaylo
@ Ron Eu recomendo expandir esta resposta com uma explicação de como fazer isso.
Eliah Kagan
2
Eu concordo com o comentário de Eliah. É uma resposta correta se o driver de escala de frequência for acpi-cpufreq.
Doug Smythies