Linux : Perintah iostat

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
%utiltinggi tapiawaitrendah β disk sibuk tapi efisien. - Perhatikan
avgqu-szdanawaitbersamaan. 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
iotopataudstatuntuk melihat proses mana yang menyebabkan beban I/O tinggi.