iostat

Pokazuje statystyki obciążenia CPU oraz urządzeń blokowych (I/O).

iostat to narzędzie z pakietu sysstat, które pokazuje statystyki obciążenia procesora oraz urządzeń blokowych (dysków, partycji, wolumenów LVM). Krótko mówiąc: gdy serwer mieli, a Ty nie wiesz, czy winny jest CPU, czy dysk dławiący się operacjami I/O, iostat daje Ci na to odpowiedź. Dane czerpie z interfejsów jądra (/proc i /sys), a pierwszy wyświetlony raport to średnia od startu systemu, więc do realnej diagnozy zawsze uruchamiaj go z interwałem.

Składnia i najważniejsze opcje

Podstawowa składnia: iostat [opcje] [interwał [liczba]]

  • -c — pokazuje tylko raport wykorzystania CPU (user, system, iowait, idle).
  • -d — pokazuje tylko raport urządzeń, bez sekcji CPU.
  • -x — rozszerzone statystyki (await, %util, r/s, w/s) — najważniejsza opcja przy diagnozie wąskich gardeł.
  • -k — wartości w kilobajtach na sekundę zamiast w blokach.
  • -m — wartości w megabajtach na sekundę, czytelniejsze przy szybkich dyskach.
  • -p — statystyki per urządzenie wraz z jego partycjami (np. -p sda).
  • -t — dokleja znacznik czasu do każdego raportu.
  • -z — pomija urządzenia, które w danym interwale nie miały żadnej aktywności.

Przykłady użycia

  • iostat — jednorazowy raport: średnie CPU i I/O od startu systemu. Dobre na szybki rzut oka, bezużyteczne do bieżącej diagnozy.
  • iostat 2 5 — pięć raportów co dwie sekundy. Tu dopiero widzisz, co dzieje się tu i teraz.
  • iostat -xm 2 — rozszerzone statystyki w MB/s, odświeżane co 2 sekundy, w nieskończoność (Ctrl+C kończy). Patrz na %util blisko 100% i rosnący await — to dysk jest wąskim gardłem.
  • iostat -dx sda nvme0n1 2 — monitorujesz tylko wybrane urządzenia, bez szumu z reszty.
  • iostat -p sda -tz 1 — per partycja, ze znacznikami czasu, pomijając bezczynne urządzenia.

Częste błędy i pułapki

Najczęstszy błąd to wnioskowanie z pierwszego raportu — on uśrednia cały uptime i może maskować chwilowe przeciążenie. Zawsze podawaj interwał. Druga pułapka: %util przy dyskach SSD i macierzach NVMe potrafi pokazywać 100% mimo że sprzęt obsługuje równolegle wiele żądań, więc nie traktuj tej liczby jako wyroku — patrz raczej na await. Pamiętaj też, że iostat nie jest domyślnie zainstalowany: doinstaluj pakiet sysstat (apt install sysstat lub dnf install sysstat). Jeśli komenda nie istnieje, to nie błąd składni — po prostu brakuje pakietu.

Powiązane komendy: vmstat, mpstat, sar, pidstat, iotop, dstat.