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.