CPU Baixa e Load Alto no Linux: Guia de Diagnóstico e Solução

Cpu baixa load alto linux. Essa é a clássica “dor de cabeça” de quem administra servidores Linux. Ver o uso da CPU em 10% enquanto o Load Average marca 50.00 é um sinal claro de que o sistema está enfrentando um gargalo, mas não de processamento puro.

O Load Average não mede apenas o que a CPU está fazendo, mas sim o número de processos na fila de execução (R) somado aos processos em estado de espera ininterrupta (D).

Aqui está um roteiro técnico para diagnosticar e resolver esse cenário:


1. O Suspeito Principal: I/O Wait (Disco ou Rede)

Se a CPU está baixa e o load está alto, 90% das vezes o problema é I/O Wait. O processador está “ocioso”, mas está parado esperando que o disco ou a rede responda para completar uma tarefa.

Como identificar:

Use o comando top ou iostat. Olhe para a métrica %wa (I/O Wait).

  • Se %wa estiver acima de 10-15%, seu disco é o gargalo.
  • Causas comuns: Backups rodando, swap excessivo, banco de dados (MariaDB) realizando muitos “Disk Reads” por falta de índices.

2. Processos em Estado “D” (Uninterruptible Sleep)

Processos nesse estado estão esperando por hardware (geralmente E/S de disco ou sistemas de arquivos de rede como NFS). Eles contam para o Load Average, mas não consomem ciclos de CPU.

Como identificar:

Execute:

ps -eo state,pid,cmd | grep "^D"

Se você vir muitos processos com o estado D, você encontrou a origem do Load Alto.


3. O Fator MariaDB/MySQL

Em ambientes com DirectAdmin ou cPanel, o MariaDB costuma ser o culpado silencioso. Se o innodb_buffer_pool_size estiver mal configurado, o servidor fará leituras constantes no disco em vez de ler da RAM.

O que verificar:

  • Slow Queries: Consultas sem índices travam a tabela.
  • Ajuste Fino: Se você tem 32GB de RAM, seu Buffer Pool deve ocupar cerca de 70-80% disso se o servidor for dedicado ao banco.

4. O Gargalo de Rede / NFS

Se você utiliza montagens externas (NFS, S3FS) ou se o seu storage é remoto, uma latência na rede pode fazer com que o kernel coloque os processos em espera. A CPU fica livre, mas a fila de processos só aumenta.


Comandos Essenciais para o Diagnóstico

ComandoO que observar
uptimeVerifica a tendência do Load (1, 5 e 15 min).
vmstat 1Coluna b (processos bloqueados) e wa (wait).
iotop -oMostra exatamente qual processo está escrevendo/lendo no disco agora.
htopVeja se as barras de CPU estão cinzas (I/O Wait) ou vermelhas (Kernel).

Como resolver na prática?

  1. Otimização de Disco: Se estiver usando HDD, migre para NVMe. Se já estiver em NVMe, verifique o agendador de I/O (mq-deadline ou none).
  2. Sysctl Tuning: Ajuste o vm.swappiness para 10 para evitar que o Linux use o disco como RAM prematuramente.
  3. MariaDB Tuning: Use ferramentas como o mysqltuner.pl para ajustar os buffers.
  4. Verifique o CloudLinux (se aplicável): Se estiver usando LVE, o Load alto pode ser reflexo de limites de IOPS atingidos por um usuário específico, segurando os processos na fila.