Ir al contenido

iostat - Estadísticas de CPU y E/S de Disco

iostat - Estadísticas de CPU y E/S de Disco

iostat reporta utilización de CPU y estadísticas de E/S de disco por dispositivo — rendimiento, IOPS, latencia de solicitud y profundidad de cola. Es la parada estándar inicial para diagnosticar cuellos de botella de almacenamiento en Linux: ¿está saturado el disco?, ¿están las solicitudes en la cola?, ¿se dispara la latencia? Se distribuye como parte del paquete sysstat junto a mpstat, pidstat y sar.

Installation

PlataformaComando
Debian/Ubuntusudo apt install sysstat
Fedora/RHELsudo dnf install sysstat
Arch Linuxsudo pacman -S sysstat
macOSiostat está integrado (salida diferente)
Verificariostat -V

Basic Usage

ComandoDescripción
iostatUn reporte desde el arranque (CPU + dispositivos)
iostat 2Refresca cada 2 segundos
iostat 2 55 reportes, 2 segundos aparte
iostat -xEstadísticas extendidas (las útiles)
iostat -dSolo estadísticas de dispositivo (sin CPU)
iostat -cSolo estadísticas de CPU

The Command You Actually Want

# Extendido, legible para humanos, por dispositivo, cada 2s
iostat -xmt 2
FlagEfecto
-xEstadísticas extendidas (util%, await, aqu-sz, …)
-mReporta en MB/s (usa -k para KB/s)
-tImprime un timestamp con cada reporte
-p DEVMuestra particiones de un dispositivo (p. ej. -p sda)
-d 2Reporte de dispositivo cada 2 segundos
-hFormato legible para humanos, NVMe-friendly

Reading Extended Output (-x)

ColumnaSignificado
r/s, w/sSolicitudes de lectura/escritura por segundo (IOPS)
rMB/s, wMB/sRendimiento de lectura/escritura
rareq-sz / wareq-szTamaño promedio de solicitud
r_await, w_awaitLatencia promedio lectura/escritura (ms) — métrica clave
aqu-szProfundidad promedio de cola (solicitudes en vuelo)
%utilFracción de tiempo que el dispositivo estaba ocupado

Interpreting the Signals

ObservaciónInterpretación
%util cerca de 100%Dispositivo está saturado (cuidado en SSD/NVMe — puede paralelizar)
Alto await (decenas de ms+)Las solicitudes son lentas — cuello de botella de latencia
Alto aqu-szSolicitudes se acumulan más rápido de lo que el disco drena
IOPS altos, rendimiento bajoE/S aleatorio pequeño (carga típica DB/metadatos)
IOPS bajo, rendimiento altoE/S secuencial grande (backups, streaming)

En SSD/NVMe modernos, %util puede leer 100% mientras el dispositivo aún tiene margen (atiende solicitudes en paralelo). Confía en await y aqu-sz más que en %util.

CPU Section

CampoSignificado
%user / %niceTiempo en espacio de usuario
%systemTiempo en el kernel
%iowaitCPU inactiva esperando E/S (pista de presión de almacenamiento)
%stealTiempo robado por el hipervisor (vecinos ruidosos)
%idleTiempo inactivo

Alto %iowait junto con alto await de disco apunta directamente al almacenamiento como el cuello de botella.

Common Workflows

# Observa un cuello de botella de disco sospechoso en directo
iostat -xmt 2

# Enfócate en un dispositivo y sus particiones
iostat -xmt -p nvme0n1 2

# Correlaciona iowait de CPU con latencia de dispositivo durante una prueba de carga
iostat -xmt 1 60 > iostat.log
HerramientaEnfoque
iostatE/S por dispositivo + estadísticas de CPU
iotopQué proceso está haciendo la E/S
dstat/doolCPU/disco/net combinado en una vista
sarActividad del sistema histórica/grabada

Usa iostat para ver que el dispositivo es lento, luego iotop para encontrar qué proceso es responsable.

Resources