IOWait Alto no Linux: Como Interpretar e Diagnosticar Corretamente

iowait

1️⃣ O que o Linux mostra como IOWait

IOWait alto Linux. O iowait é uma métrica que aparece em ferramentas como top, htop, vmstat ou sar. Ela representa o tempo que a CPU passa ociosa esperando operações de I/O concluírem, geralmente de disco ou rede.

⚠️ Cuidado: isso não significa que o disco está necessariamente lento. Significa apenas que a CPU poderia estar fazendo trabalho, mas está esperando I/O.


2️⃣ Interpretação correta

  • IOWait alto nem sempre é ruim:
    • Se o sistema tem pouca CPU ocupada, mas muitas leituras/escritas no disco, o iowait será alto mesmo que o usuário não perceba lentidão.
    • Por exemplo, backups ou grandes cópias de arquivos podem gerar IOWait alto sem travar aplicações.
  • IOWait alto + CPU ociosa baixa → provável gargalo de disco:
    • Aqui o sistema realmente está “parado” esperando o disco responder.
    • Normalmente indica:
      • SSD/HDD saturado
      • RAID mal configurado ou com rebuild em andamento
      • Sistema com swap intenso ou ZFS/overlayfs pesado
  • IOWait alto + CPU ocupada → geralmente é atividade legítima
    • A CPU está ocupada processando dados, e o I/O não é o gargalo crítico.

3️⃣ Como diagnosticar

  1. Ver processos que causam I/O intenso iotop -ao Mostra quais processos estão causando leitura/escrita e quanto.
  2. Ver utilização de disco por operaçãoiostat -xz 1
    • %iowait → tempo de espera
    • await → tempo médio por operação
    • util → saturação do disco
  3. Ver filas de discocat /proc/diskstats ou usar iostat -x para checar avgqu-sz (tamanho médio da fila).
    • avgqu-sz > 1 em SSDs indica fila de I/O considerável
    • HDDs podem tolerar fila maior, mas ainda assim é alerta

4️⃣ Exemplo de interpretação

  • iowait = 20%
  • CPU total ociosa = 30%
  • iotop mostra mysqld usando 80% do I/O

✅ Conclusão: MySQL está limitado pelo disco. Otimizar queries ou mover para SSD faz diferença.

  • iowait = 20%
  • CPU total ociosa = 60%
  • iotop mostra backup rodando

✅ Conclusão: IOWait alto é esperado, não é problema crítico.


5️⃣ Dica prática

IOWait não deve ser interpretado isoladamente. Sempre correlacione com:

  • CPU ociosa (%idle)
  • Saturação do disco (util no iostat)
  • Filas de I/O (avgqu-sz)
  • Processos ativos (iotop ou pidstat -d)