Linux : Perintah iostat

Revision as of 10:52, 4 November 2025 by Novy (talk | contribs) (Created page with "thumb|tux <code>iostat</code> (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 <code>/proc/stat</code> dan <code>/proc/diskstats</code>, lalu men...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.