Analisis Disk I/O Linux: Panduan Tool dan Metrik Performa

Analisis Disk I/O Linux: Identifikasi Bottleneck

Analisis Disk I/O (Input/Output) pada Linux bertujuan untuk mengukur efisiensi sistem dalam membaca dan menulis data ke media penyimpanan. Bottleneck pada I/O sering kali menjadi penyebab utama sistem terasa lambat (high load average) meskipun penggunaan CPU rendah. Fokus utama analisis adalah pada metrik utilization, wait time, dan throughput.

Tool Utama Analisis Disk I/O

Berikut adalah daftar tool standar yang tersedia di hampir semua distribusi Linux untuk memantau aktivitas disk secara real-time maupun historis.

ToolFungsi UtamaKelebihan
iostatStatistik CPU dan I/O perangkatRingan, standar di paket sysstat
iotopMonitor I/O per prosesIdentifikasi proses penyebab beban
sarAnalisis historis sistemData jangka panjang yang akurat
blktraceAnalisis level kernelDetail teknis mendalam

Penggunaan iostat untuk Monitoring Real-time

iostat adalah tool paling efektif untuk melihat beban kerja disk secara keseluruhan. Gunakan perintah berikut untuk memantau statistik setiap 2 detik:

iostat -xz 2

Interpretasi Metrik Penting:

  • r/s & w/s: Jumlah baca/tulis per detik.
  • await: Waktu rata-rata (ms) untuk I/O request. Jika nilai ini tinggi (>10-20ms), disk mengalami antrean panjang.
  • %util: Persentase waktu perangkat sibuk. Jika mendekati 100%, disk mencapai batas kapasitas performanya.

Identifikasi Proses dengan iotop

Jika sistem terasa lambat, gunakan iotop untuk melihat proses mana yang paling banyak melakukan operasi I/O:

sudo iotop -o

Opsi -o (only) hanya akan menampilkan proses yang sedang melakukan aktivitas I/O aktif, sehingga memudahkan identifikasi aplikasi yang menyebabkan disk thrashing.

Analisis Historis dengan sar

Untuk mendiagnosis masalah yang terjadi di masa lalu, gunakan sar. Pastikan paket sysstat terinstal dan aktif. Perintah berikut menampilkan statistik perangkat blok:

sar -d -f /var/log/sa/saXX

Ganti XX dengan tanggal yang ingin dianalisis. Ini membantu memetakan apakah lonjakan I/O terjadi pada jam-jam tertentu yang berkorelasi dengan cron job atau backup terjadwal.

Tips Troubleshooting Lapangan

  1. Cek Antrean (Queue): Jika avgqu-sz (average queue size) tinggi, berarti ada banyak permintaan yang menunggu antrean disk.
  2. Cek Latensi: Latensi tinggi pada SSD bisa mengindikasikan masalah pada controller atau kabel SATA/SAS.
  3. I/O Scheduler: Periksa scheduler yang digunakan dengan perintah cat /sys/block/sda/queue/scheduler. Untuk SSD, none atau mq-deadline biasanya lebih optimal daripada cfq.
  4. File System: Gunakan df -i untuk memastikan tidak ada masalah pada inode yang penuh, yang sering kali menyebabkan I/O error meskipun ruang disk masih tersedia.