Pular para o conteúdo

iostat - Cheatsheet de Estatísticas de CPU e I/O de Disco

iostat - Cheatsheet de Estatísticas de CPU e I/O de Disco

iostat relata utilização de CPU e estatísticas de I/O de disco por dispositivo — throughput, IOPS, latência de requisição e queue depth. É a parada padrão primeiro para diagnosticar gargalos de armazenamento no Linux: o disco está saturado, as requisições estão enfileirando, a latência está disparando? Está incluído como parte do pacote sysstat ao lado de mpstat, pidstat e sar.

Instalação

PlatformCommand
Debian/Ubuntusudo apt install sysstat
Fedora/RHELsudo dnf install sysstat
Arch Linuxsudo pacman -S sysstat
macOSiostat é built-in (saída diferente)
Verificariostat -V

Uso Básico

CommandDescrição
iostatUm relatório desde boot (CPU + devices)
iostat 2Atualize a cada 2 segundos
iostat 2 55 relatórios, 2 segundos de intervalo
iostat -xStats estendidas (as úteis)
iostat -dStats somente de device (sem CPU)
iostat -cStats somente de CPU

O Comando Que Você Realmente Quer

# Estendido, legível por humano, por-device, a cada 2s
iostat -xmt 2
FlagEfeito
-xEstatísticas estendidas (util%, await, aqu-sz, …)
-mRelato em MB/s (use -k para KB/s)
-tImprima um timestamp com cada relatório
-p DEVMostre partições de um device (ex. -p sda)
-d 2Relatório de device a cada 2 segundos
-hFormatação legível por humano, amigável a NVMe

Lendo Saída Estendida (-x)

ColumnSignificado
r/s, w/sRequisições de leitura/escrita por segundo (IOPS)
rMB/s, wMB/sThroughput de leitura/escrita
rareq-sz / wareq-szTamanho médio de requisição
r_await, w_awaitLatência média de leitura/escrita (ms) — métrica chave
aqu-szProfundidade média de fila (requisições em voo)
%utilFração de tempo o device estava ocupado

Interpretando os Sinais

ObservaçãoInterpretação
%util perto de 100%Device está saturado (cuidado com SSD/NVMe — podem paralelizar)
await alto (dezenas de ms+)Requisições são lentas — gargalo de latência
aqu-sz altoRequisições acumulando mais rápido que o disco drena
IOPS alto, throughput baixoPequeno I/O aleatório (típico DB/workload de metadados)
IOPS baixo, throughput altoGrande I/O sequencial (backups, streaming)

Em SSD/NVMe moderno, %util pode ler 100% enquanto o device ainda tem headroom (atende requisições em paralelo). Confie mais em await e aqu-sz que em %util ali.

Seção CPU

FieldSignificado
%user / %niceTempo em espaço usuário
%systemTempo no kernel
%iowaitCPU ocioso aguardando I/O (dica de pressão de armazenamento)
%stealTempo roubado pelo hypervisor (vizinhos barulhentos)
%idleTempo ocioso

%iowait alto ao lado de await de disco alto aponta direto para armazenamento como o gargalo.

Fluxos de Trabalho Comuns

# Assista um gargalo de disco suspeito ao vivo
iostat -xmt 2

# Focalize um device e suas partições
iostat -xmt -p nvme0n1 2

# Correlacione CPU iowait com latência de device durante um teste de carga
iostat -xmt 1 60 > iostat.log

iostat vs Ferramentas Relacionadas

ToolFoco
iostatI/O por-device + stats de CPU
iotopQual processo está fazendo o I/O
dstat/doolCPU/disk/net combinado em uma view
sarAtividade de sistema histórica/registrada

Use iostat para ver o device é lento, depois iotop para descobrir qual processo é responsável.

Recursos