Skip to content

iostat

Minha ferramenta favorita para troubleshooting de storage.

PROPÓSITO

Ver, por dispositivo, quanto de fato está sendo exigido do disco — utilização, latência e fila — para confirmar ou descartar gargalo de I/O.

Quando usar: Quando há suspeita de que o disco é o limitante, e como primeira parada antes de partir para ferramentas mais pesadas.

Pré-requisitos: Pacote sysstat instalado.

Executar

bash
iostat -xz 1

Exemplo Real

text
Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await aqu-sz  %util
sda            325.00  83200.00     0.00   0.00    1.16   256.00   96.00 103812.00     5.00   4.95    6.67  1081.38    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.02  34.70

Leituras (Read)

CampoSignificado
r/sRead IOPS
rkB/sThroughput de leitura
rrqm/sLeituras agrupadas
%rrqmPercentual agrupado
r_awaitLatência média
rareq-szTamanho médio das leituras

Escritas (Write)

CampoSignificado
w/sWrite IOPS
wkB/sThroughput de escrita
wrqm/sEscritas agrupadas
%wrqmPercentual agrupado
w_awaitLatência média
wareq-szTamanho médio das escritas

Discard (TRIM)

CampoSignificado
d/sOperações TRIM
dkB/sThroughput TRIM
drqm/sTRIM agrupados
%drqmPercentual agrupado
d_awaitLatência do TRIM
dareq-szTamanho médio

Flush

CampoSignificado
f/sFlushes por segundo
f_awaitLatência de flush

Fila

CampoSignificado
aqu-szTamanho médio da fila

Referência:

text
< 1     Excelente
1-5     Normal
5-20    Atenção
> 20    Gargalo

Utilização

CampoSignificado
%utilTempo ocupado

Referência:

text
< 60%     Tranquilo
60-80%    Atenção
80-100%   Próximo do limite
100%      Saturado

Latência

NVMe

text
< 1 ms     Excelente
1-2 ms     Muito bom
> 5 ms     Investigar

SSD

text
1-5 ms     Excelente
5-10 ms    Bom
> 20 ms    Problema

HDD

text
5-20 ms    Normal
20-50 ms   Atenção
> 50 ms    Gargalo

Throughput

Conversões rápidas:

text
1024 kB/s = 1 MB/s

125000 kB/s ≈ 1 Gbps

1250000 kB/s ≈ 10 Gbps

Ordem de análise

Sempre verificar:

  1. r_await

  2. w_await

  3. aqu-sz

  4. %util

Depois:

  1. rkB/s

  2. wkB/s

  3. r/s

  4. w/s