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.
| Tool | Fungsi Utama | Kelebihan |
|---|---|---|
| iostat | Statistik CPU dan I/O perangkat | Ringan, standar di paket sysstat |
| iotop | Monitor I/O per proses | Identifikasi proses penyebab beban |
| sar | Analisis historis sistem | Data jangka panjang yang akurat |
| blktrace | Analisis level kernel | Detail 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 2Interpretasi 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 -oOpsi -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/saXXGanti 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
- Cek Antrean (Queue): Jika
avgqu-sz(average queue size) tinggi, berarti ada banyak permintaan yang menunggu antrean disk. - Cek Latensi: Latensi tinggi pada SSD bisa mengindikasikan masalah pada controller atau kabel SATA/SAS.
- I/O Scheduler: Periksa scheduler yang digunakan dengan perintah
cat /sys/block/sda/queue/scheduler. Untuk SSD,noneataumq-deadlinebiasanya lebih optimal daripadacfq. - File System: Gunakan
df -iuntuk memastikan tidak ada masalah pada inode yang penuh, yang sering kali menyebabkan I/O error meskipun ruang disk masih tersedia.