Pular para o conteúdo

Modo de energia da CPU

O Astra envia os pacotes seguindo um ritmo exato. Quando a CPU trabalha abaixo da velocidade máxima, os pacotes saem atrasados e a saída fica instável sob carga. Em servidores, coloque a CPU no modo performance.

O Dashboard da interface web mostra este aviso quando a política de energia da CPU de um host mantém a frequência baixa:

The power saving policy holds the CPU on <host> below the clock it is capable of. This could impact application performance

O que dispara o aviso depende do driver da CPU:

  • intel_pstate e amd-pstate-epp: o aviso aparece só quando energy_performance_preference está em power ou balance_power. O governor powersave não é problema aqui: o hardware escolhe a frequência e o turbo continua funcionando.
  • Outros drivers (acpi-cpufreq, cppc_cpufreq, intel_cpufreq): o aviso aparece com todos os governors, menos o performance. Os governors que seguem a carga (ondemand, schedutil, conservative) mantêm na frequência mais baixa uma carga de streaming em rajadas e só aumentam a frequência quando a carga é constante.

O turbo desativado não gera o aviso. Para resolver, mude para o modo performance. O “Read more” do aviso abre a página Tune.

O “Do not show again” esconde o aviso para o seu usuário neste host. Para vê-lo de novo, desmarque “Hide CPU power save warning” em Settings → Interface.

O utilitário cpupower mostra o driver, os governors disponíveis e a política atual. No Debian, ele vem no pacote linux-cpupower:

sudo apt-get update
sudo apt-get install linux-cpupower

No Ubuntu, ele está no linux-tools-common mais o pacote do kernel em uso:

sudo apt-get update
sudo apt-get install linux-tools-common linux-tools-$(uname -r)
cpupower frequency-info

Você também pode ler esses valores direto do sysfs. Verificar uma CPU é suficiente - na prática, o governor é o mesmo para todas as CPUs de uma máquina:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
DriverValor que importaEstá tudo bem quando
intel_pstate, amd-pstate-eppenergy_performance_preferencedefault, performance ou balance_performance
acpi-cpufreq, cppc_cpufreq, intel_cpufreq, outrosscaling_governorperformance
sem o diretório cpufreq (maioria das VMs)nada para verificaro sistema convidado não controla a frequência

O Tune define todos os scaling_governor como performance e aplica isso a cada inicialização. Essa é a solução recomendada para servidores. Para fazer o mesmo manualmente:

cpupower frequency-set -g performance

Nos drivers intel_pstate e amd-pstate-epp, isso também define energy_performance_preference como performance.

Em um desktop ou notebook, quem costuma controlar essa preferência é o ambiente de trabalho: o power-profiles-daemon (por trás da opção “Power Mode” no GNOME e no KDE) ou o TLP. O perfil Power Saver define energy_performance_preference como power, e o TLP também reduz esse valor quando o aparelho está na bateria. Mude o perfil para performance ou balanced:

powerprofilesctl set performance

A preferência também pode ser definida diretamente, mantendo o governor:

echo balance_performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference

Os valores válidos são default, performance, balance_performance, balance_power e power.

As configurações feitas com cpupower ou tee se perdem ao reiniciar. Para deixá-las permanentes, adicione o comando ao arquivo /etc/rc.local para que ele seja executado a cada inicialização. O Tune já faz isso com o governor automaticamente.