Consumo do homelab: PowerTOP e ajustes de energia no Linux

Como baixar o consumo do homelab no Linux: medir na tomada, PowerTOP sem o --auto-tune às cegas (cuidado com USB), intel_pstate e C-states no BIOS.

Publicado
Leitura
5 min
Medidor de energia ligado entre a tomada e um aparelho, com o visor mostrando o consumo
Medidor de consumo de tomada. Foto: Cjp24, CC BY-SA 3.0 (original).
Neste post

O meu homelab inteiro consome entre 30 W e 50 W: o Proxmox no ThinkCentre, o modem de fibra e o roteador. Fiz a conta de quanto isso custa por mês no post sobre o custo de um homelab ligado 24h. E tem outro motivo para olhar cada watt: tudo isso está ligado numa EcoFlow River 3 Plus, e menos consumo significa mais tempo de bateria quando a energia cai.

Neste post explico as ferramentas que o Linux tem para baixar o consumo, com os cuidados de cada uma. O principal cuidado, no meu caso, é que o HD de backup é USB.

Primeiro, medir #

Ajuste sem medição é chute. O jeito mais confiável é medir na tomada:

  • uma tomada medidora de energia, entre a máquina e a parede;
  • ou o próprio nobreak, se ele mostra a potência de saída.

A EcoFlow mostra a potência de saída na tela e no app. Meça uns dias antes de mudar qualquer coisa, para ter a linha de base. Consumo varia ao longo do dia: o backup das 21h, por exemplo, gasta mais que a madrugada parada.

PowerTOP: o diagnóstico #

O PowerTOP é uma ferramenta para diagnosticar consumo e gerenciamento de energia no Linux. No Debian e no Proxmox, ele está no repositório:

apt install powertop
powertop

Ele precisa rodar como root. A tela mostra o que mais acorda o processador, quanto tempo a CPU passa em estados de economia (os C-states) e, na aba Tunables, uma lista de ajustes marcados como Bad ou Good.

Uma limitação: as estimativas de consumo por dispositivo dependem de calibrar o PowerTOP rodando na bateria, como num notebook. Num mini PC ligado na tomada, use a aba de C-states e os Tunables, e meça o consumo real por fora.

O botão perigoso: –auto-tune #

O PowerTOP tem uma opção que aplica todos os ajustes recomendados de uma vez:

powertop --auto-tune

Parece ótimo, mas é aqui que eu tomaria cuidado. Entre os ajustes está a suspensão automática de dispositivos USB. Há relatos no fórum do Proxmox de adaptadores de rede USB que caíram por causa disso, e de teclados e mouses que pararam de responder em outros sistemas.

No meu caso, o destino do backup das 21h é um HD externo USB. Se ele dormir na hora errada, o backup pode falhar. Então, em vez do --auto-tune, eu faria assim:

  1. Abrir a aba Tunables.
  2. Ligar um ajuste de cada vez (Enter alterna entre Bad e Good).
  3. Deixar de fora tudo que for USB do HD de backup.
  4. Medir o consumo de novo e conferir se o backup da noite passou.

Outra coisa: os ajustes do PowerTOP não sobrevivem a um reinício. Para aplicar sempre, o caminho comum é um serviço do systemd que roda no boot. Só faça isso depois de saber exatamente quais ajustes quer.

A CPU: o governador #

O processador do ThinkCentre é um Intel Core i5-8400T, de 35 W de TDP. Em processadores Intel modernos, quem controla a frequência costuma ser o driver intel_pstate. Para saber qual driver e qual política estão em uso:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Pela documentação do kernel, o intel_pstate em modo ativo tem só dois algoritmos: performance e powersave. E o powersave dele não deixa a CPU travada na frequência mais baixa: ele ajusta a frequência conforme o uso, parecido com o schedutil dos outros drivers. Para um homelab que passa a maior parte do tempo parado, o powersave costuma fazer sentido.

O BIOS também conta #

Parte da economia está no firmware, antes do Linux:

  • C-states ligados: deixam a CPU dormir quando não há trabalho. Se estiverem desligados no BIOS, o PowerTOP vai mostrar pouco tempo nos estados mais profundos.
  • Hardware sem uso: áudio, portas ou Wi-Fi que nunca usa podem ser desligados no BIOS, se ele oferecer a opção.

Mude uma coisa por vez e meça depois de cada uma.

O que eu não espero #

Num mini PC de 35 W de TDP, que já passa a maior parte do tempo ocioso, não espero milagre. A economia vem em poucos watts. Mas é consumo 24 horas por dia: alguns watts a menos pesam na conta do ano e dão alguns minutos a mais de bateria na próxima queda.

Resumindo #

  • Meça na tomada antes e depois. Sem linha de base, não dá para saber se funcionou.
  • PowerTOP mostra o que acorda a CPU e lista os ajustes na aba Tunables.
  • --auto-tune com cuidado: a suspensão de USB pode derrubar disco e rede USB.
  • Ajustes somem no reinício. Só automatize depois de testar.
  • intel_pstate: powersave ajusta a frequência ao uso; não trava a CPU no mínimo.
  • BIOS: C-states ligados e hardware sem uso desligado.

Cada watt economizado vale duas vezes num homelab no nobreak: na conta de luz e no tempo de bateria.

Fontes e documentação