tux

iostat (Input/Output Statistics) adalah utilitas dari paket sysstat yang digunakan untuk memantau kinerja I/O perangkat penyimpanan (disk, SSD, dll) serta penggunaan CPU.

Tujuan utamanya adalah membantu administrator mendiagnosis bottleneck I/O, menyeimbangkan beban disk, dan memahami pola akses data di sistem.

Perintah ini mengumpulkan data dari /proc/stat dan /proc/diskstats, lalu menampilkan statistik terkait throughput, waktu tunggu, dan utilisasi perangkat.

βš™οΈ Sintaks Umum

iostat [opsi] [interval] [count]
  • interval = jeda waktu antar laporan (dalam detik).
  • count = jumlah laporan yang ingin ditampilkan.

Contoh dasar:

iostat 2 5

β†’ Menampilkan statistik setiap 2 detik sebanyak 5 kali.

πŸ“‹ Tabel Atribut/Opsi iostat

Atribut / Opsi Keterangan Contoh Aplikatif
-c Menampilkan hanya statistik CPU (tanpa data disk). iostat -c 1 3 β†’ pantau penggunaan CPU tiap 1 detik, 3 kali.
-d Menampilkan hanya statistik disk. iostat -d 2 5 β†’ pantau aktivitas disk setiap 2 detik, 5 kali.
-x Menampilkan statistik ekstensi detail per perangkat (utilisasi, waktu tunggu, service time, dll). iostat -x 1 β†’ tampilkan detil seperti await, %util, svctm.
-k Menampilkan data dalam satuan KB/s. iostat -dk β†’ throughput dalam kilobyte per detik.
-m Menampilkan data dalam satuan MB/s. iostat -dm 1 β†’ throughput dalam megabyte per detik.
-p [DEVICE] Menampilkan statistik partisi tertentu atau semua partisi (-p ALL). iostat -p sda β†’ hanya tampilkan info partisi di disk sda.
-t Menampilkan timestamp untuk setiap laporan. iostat -xt 5 β†’ log aktivitas disk setiap 5 detik dengan waktu.
-z Menyembunyikan perangkat dengan aktivitas nol (idle). iostat -xz 1 β†’ hanya tampilkan perangkat yang aktif.
-y Mengabaikan laporan pertama (yang biasanya kumulatif sejak boot). iostat -xy 1 10 β†’ abaikan laporan awal dan tampilkan 10 kali pengukuran real-time.
-h Output dalam format human-readable (lebih mudah dibaca). iostat -h -d 2 β†’ data disk mudah dibaca oleh manusia.
-V Menampilkan versi iostat. iostat -V
--dec=NUM Mengatur jumlah digit desimal yang ditampilkan. iostat --dec=1 -x β†’ tampilkan 1 digit desimal.
--pretty Menampilkan hasil dalam format tabel yang lebih rapi. iostat --pretty -x 2
-N Menampilkan nama LVM logical volume jika tersedia. iostat -N -x β†’ tampilkan statistik per logical volume.
-o JSON / -o CSV Menyimpan output dalam format JSON atau CSV untuk analisis otomatis. iostat -x -o JSON > io.json

πŸ” Contoh Output dan Interpretasi

Contoh:

iostat -x -m 2 1

Output (disederhanakan):

Device:  r/s  w/s  rMB/s  wMB/s  avgrq-sz  avgqu-sz  await  svctm  %util
sda      5.10 1.00  0.10   0.02    28.00     0.01     1.96   0.22   1.34

Penjelasan kolom penting:

Kolom Arti Analisis
r/s, w/s Jumlah operasi baca/tulis per detik Tinggi = disk aktif
rMB/s, wMB/s Throughput baca/tulis dalam MB/s Gunakan untuk melihat bandwidth I/O
avgrq-sz Rata-rata ukuran permintaan I/O (KB per request) Nilai tinggi β†’ beban sequential besar
avgqu-sz Panjang antrian rata-rata I/O Nilai tinggi β†’ potensi bottleneck
await Waktu rata-rata tunggu I/O (ms) >20ms di SSD β†’ indikasi delay
svctm Waktu rata-rata servis tiap I/O (ms) Performa hardware-level
%util Persentase waktu perangkat sibuk >90% berarti disk saturasi (bottleneck I/O)

πŸ’‘ Contoh Skenario Nyata

Skenario Perintah Tujuan Analisis
Memantau performa disk utama server produksi iostat -x 1 10 Melihat apakah disk I/O overload (%util > 90%).
Analisis bottleneck saat database lambat iostat -xdm 2 10 Memeriksa waktu tunggu (await) dan throughput.
Logging performa untuk analisis harian iostat -x -t -o CSV 60 1440 > /var/log/iostat.csv Menyimpan data I/O tiap menit selama 24 jam.
Melihat hanya perangkat aktif iostat -xz 5 Fokus pada disk yang benar-benar bekerja.

🧩 Analisis Tambahan (Tips Ahli)

  • Jangan lihat %util saja. Jika %util tinggi tapi await rendah β†’ disk sibuk tapi efisien.
  • Perhatikan avgqu-sz dan await bersamaan. Kombinasi tinggi menandakan I/O queue panjang β†’ bottleneck.
  • Gunakan interval pendek (1–2 detik) untuk debugging real-time, dan interval panjang (>60 detik) untuk tren jangka panjang.
  • Padukan dengan iotop atau dstat untuk melihat proses mana yang menyebabkan beban I/O tinggi.