Monitorizarea I/O pe Discuri și a Saturației de Stocare cu iostat în Linux / Bash

Procese și monitorizare Pachetul sysstat

Ghid complet pentru monitorizarea performanței de disc cu iostat: interpretarea metricilor await, r/s, w/s și %util pentru detectarea saturației de I/O pe SSD-uri și NVMe.

Sintaxă comandă
iostat -xz 1 5

Când un server funcționează lent, instinctul majorității administratorilor este să verifice procesorul cu top sau memoria cu free. În majoritatea cazurilor de producție cu baze de date (MySQL, PostgreSQL, ElasticSearch), adevărata cauză a încetinirii nu este CPU-ul, ci saturația operațiunilor de intrare/ieșire pe disc (I/O Bottleneck). Utilitarul iostat (inclus în pachetul sysstat) oferă vizibilitate completă asupra performanței subsistemului de stocare.

Comanda standard de producție pentru iostat
# Parametri esențiali:
# -x : Afișează statisticile extinse detaliate
# -z : Omite dispozitivele complet inactive (fără trafic în intervalul curent)
# 1  : Actualizare la fiecare 1 secundă
# 5  : Ieșire după 5 rapoarte

iostat -xz 1 5

Cum se Interpretează Metricile Esențiale din iostat

Coloană Semnificație Prag de Alarmă în Producție
r/s și w/s Numărul de operațiuni de citire și scriere finalizate per secundă (IOPS). Comparați cu specificațiile hardware ale discului (un SSD SATA oferă ~50k-90k IOPS, un NVMe > 500k IOPS).
rMB/s și wMB/s Lățimea de bandă transferată pe secundă (în Megaocteți). Arată volumul brut de date citite sau scrise secvențial pe disc.
await (și r_await, w_await) Timpul mediu total de așteptare (în milisecunde) petrecut de o cerere I/O de la trimitere până la finalizare. Pe SSD-uri NVMe, await trebuie să fie sub 1-2 ms! Dacă depășește 15-20 ms, discul este supraîncărcat.
%util Procentul de timp în care dispozitivul a avut cel puțin o cerere activă în lucru. Dacă %util stă constant la 100%, discul a atins capacitatea fizică maximă de procesare a cererilor paralele!
Ce faci dacă discul este saturat (%util = 100%)?
# Pasul 1: Identifică procesul vinovat de I/O masiv folosind iotop:
sudo iotop -oPa

# Pasul 2: Verifică dacă problema este din baze de date (interogări lente fără indecși
# care forțează scanări complete de pe disc) sau din scrieri masive de loguri nebuferate.