Pesquisa de site

Desative o Turbo Boost/defina velocidade constante da CPU no Ubuntu 22.04/24.04


Este tutorial mostra como desligar o turbo boost da CPU e/ou definir a velocidade máxima (ou mínima) constante da CPU no Ubuntu 22.04 e/ou Ubuntu 24.04.

Desativar o turbo boost limitará a velocidade da CPU para evitar ultrapassar a frequência base. É útil para economizar energia e evitar o superaquecimento do computador. Para escolha, o usuário também pode definir a velocidade constante da CPU para consumo mínimo de energia ou desempenho máximo.

A maioria das máquinas hoje tem opção na página do BIOS para ativar/desativar e até alterar a frequência da CPU, porém, não é flexível.

Para Linux, o Kernel possui uma ferramenta chamada cpupower que pode fazer o trabalho na linha de comando, e o usuário pode ligar/desligar o turbo boost através do sysfs. O Gnome Desktop ainda possui uma extensão GRÁFICA (role para baixo para ver a etapa 4) para facilitar as coisas.

1. Desative o turbo boost por meio de um único comando:

Depende do driver de dimensionamento da CPU, existem 2 comandos para ativar/desativar o turbo boost da CPU.

Primeiro, pressione Ctrl+Alt+T no teclado para abrir uma janela de terminal e, em seguida, execute os seguintes comandos de acordo.

Para driver ‘intel_pstate’

Se você possui CPU Intel em sua máquina, primeiro tente executar o comando abaixo:

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

O comando deve gerar:

  • 0 – significa que o Turbo Boot está ativado!
  • 1 – Turbo Boost está desativado!
  • Esse arquivo ou diretório não existe – outro driver em vez de intel_pstate está em uso

Se a saída for 0, você poderá executar o comando para definir seu valor como 1 para desativar o turbo boost:

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

Se 1, use o comando para reativar o recurso:

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

Para outros drivers de escalonamento

Se o primeiro comando acima exibir “Nenhum arquivo ou diretório”, então outro driver de escala está em uso.

Nesse caso, execute o comando para verificar o anther sysfs:

cat /sys/devices/system/cpu/cpufreq/boost

Além disso, o comando deve gerar 0 ou 1. E você pode desativar o turo boost definindo seu valor como 1:

echo "1" | sudo tee /sys/devices/system/cpu/cpufreq/boost

Desative o turbo boost na inicialização

Os comandos acima funcionam até a reinicialização! Na próxima inicialização, seu sistema irá restaurar a alteração e, por padrão, ativar o recurso turbo boost.

Nesse caso, você pode criar um serviço systemd para executar o comando acima automaticamente durante a inicialização do sistema.

Mas, por que não desativá-lo nas configurações do BIOS 🤔?

1. Para fazer isso, primeiro execute o comando para criar um serviço do sistema:

sudo nano /etc/systemd/system/boostoff.service

O comando irá criar um serviço chamado boostoff.service e editá-lo no terminal. Quando abrir, cole as seguintes linhas:

[Unit]
Description=Disable Turbo Boost at startup

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"

[Install]
WantedBy=multi-user.target

NOTA: para driver não-intel_pstate, use /sys/devices/system/cpu/cpufreq/boost em vez do texto em negrito de 'ExeStart ' valor.

Quando terminar a edição, pressione Ctrl+S para salvar o arquivo e Ctrl+X para sair.

2. Por fim, ative o serviço para desativar automaticamente o turbo boost na inicialização:

systemctl enable boostoff.service

2. Defina a velocidade mínima, máxima ou constante da CPU

Sem desligar o boost, você pode limitar a frequência máxima ou definir uma frequência de CPU constante. Isso pode ser feito com uma ferramenta cpupower.

1. Primeiro, abra o terminal (Ctrl+Alt+T) e execute o comando para instalar a ferramenta para o kernel Linux atual.

sudo apt install linux-tools-$(uname -r)

2. Em seguida, você pode executar o comando para verificar qual driver de escalonamento está em uso, mínimo e máximo frequência da CPU suportado pelo seu hardware, etc.

cpupower frequency-info

3. Para definir a velocidade mínima constante da CPU, basta executar:

sudo cpupower frequency-set --max 800MHz

Este comando limitará a velocidade máxima da CPU a 800MHz, que é a velocidade mínima de acordo com a última captura de tela. Altere o número de acordo com a saída cpupower Frequency-Info.

Para definir a velocidade máxima constante da CPU, execute:

sudo cpupower frequency-set --min 4.30GHz --max 4.30GHz

Além de 4,30 GHz, você pode definir qualquer velocidade no último comando além da capacidade da CPU. Ele tentará rodar na velocidade máxima. Se o turbo boost estiver desativado, então a frequência base.

Para escolha, você também pode definir a CPU para uma velocidade específica executando o comando (2000MHz, por exemplo):

sudo cpupower frequency-set --freq 2000Mhz

Desde o Kernel 6.6, também existe uma opção para desativar o turbo boost. Mas não sei por que, no meu caso não funciona para CPU Intel.

sudo cpupower set --turbo-boost 0

Desativar o daemon de perfil de energia do GNOME

Para a área de trabalho GNOME padrão, as configurações do modo de energia integrado podem entrar em conflito com os comandos cpupower acima.

Nesse caso, você pode desativar o daemon power-profiles executando os 2 comandos abaixo:

  • Primeiro, abra o terminal e pare o serviço:

    systemctl stop power-profiles-daemon.service
  • Em seguida, mascare-o para evitar a execução automática na próxima inicialização:

    systemctl mask power-profiles-daemon.service

(Opcional) Para reativar o serviço, execute:

systemctl unmask power-profiles-daemon.service
systemctl start power-profiles-daemon.service

Faça a opção cpupower funcionar na próxima inicialização

Assim como o comando para desabilitar o turbo boost, o cpupower também funciona até a reinicialização!

Para que funcione na inicialização, primeiro crie o serviço:

  • Crie um serviço de sistema (alguns Linux criam o serviço automaticamente após instalar a ferramenta):

    sudo nano /etc/systemd/system/cpupower.service
  • Em seguida, cole as linhas a seguir e salve pressionando Ctrl+S e depois Ctrl+X. Além disso, altere o comando em negrito de acordo.

    [Unit]
    Description=Adjust CPU speed via cpupower
    
    [Service]
    Type=oneshot
    ExecStart=/bin/sh -c "cpupower frequency-set --max 800MHz"
    
    [Install]
    WantedBy=multi-user.target

Em seguida, habilite o serviço via comando:

systemctl enable cpupower.service

3. Verifique a velocidade da CPU em RealTime

Depois (ou durante) de fazer alterações, você pode monitorar a velocidade da CPU em tempo real, executando o comando:

watch -n1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

Ele exibe a frequência de todos os núcleos da CPU e atualiza a cada segundo.

4. Use a ferramenta gráfica para gerenciar a velocidade da CPU

Se você está procurando uma ferramenta gráfica para gerenciar a potência e a frequência da CPU, escrevi sobre ela nos seguintes tutoriais. Eles incluem:

  • CPUPower-GUI que funciona na maioria dos Linux. Com ele, você desabilita/habilita núcleos de CPU, define a frequência mínima/máxima por núcleo, define o perfil padrão na inicialização, etc.

  • Para o desktop GNOME padrão, atualmente estou usando a extensão cpufreq. Ele mostra a frequência em tempo real no painel superior e fornece uma caixa de diálogo de preferências para definir a frequência mínima/máxima, ativar/desativar núcleos de CPU e turbo boost e gerenciar perfil e governador.

Artigos relacionados