Linux Load Average: Arti, Cara Baca, dan Penjelasan Teknis

Linux load average adalah representasi kuantitatif dari jumlah thread proses yang sedang berada dalam antrean eksekusi CPU (dalam keadaan running) atau sedang menunggu sumber daya sistem seperti I/O disk (dalam keadaan uninterruptible sleep) selama rentang waktu 1, 5, dan 15 menit. Nilai ini bukan sekadar persentase penggunaan CPU, melainkan indikator beban kerja total yang ditanggung oleh sistem operasi.

Secara historis dan teknis, load average dihitung menggunakan rumus eksponensial bergerak (exponential moving average) oleh kernel Linux. Angka yang muncul di terminal saat Anda menjalankan perintah seperti uptime, top, atau w terdiri dari tiga metrik terpisah yang mewakili rata-rata beban sistem pada interval waktu tertentu.

Tiga Angka Load Average dan Cara Membacanya

Ketika Anda melihat output load average seperti 0.58, 0.45, 0.38, masing-masing angka memiliki arti durasi waktu yang berbeda:

  • Angka Pertama (1 Menit): Menunjukkan beban rata-rata selama 60 detik terakhir. Angka ini paling volatil dan cepat bereaksi terhadap lonjakan proses mendadak.
  • Angka Kedua (5 Menit): Menunjukkan beban rata-rata selama 300 detik atau 5 menit terakhir. Memberikan gambaran tren beban jangka pendek.
  • Angka Ketiga (15 Menit): Menunjukkan beban rata-rata selama 900 detik atau 15 menit terakhir. Menjadi indikator stabil untuk melihat arah beban kerja server secara makro.

Matriks Hubungan Core CPU dan Load Average

Jumlah Core CPU Load Ideal (Normal) Load Siaga (Mulai Padat) Load Kritis (Bottleneck)
1 Core 0.00 - 0.70 0.70 - 1.00 > 1.00
2 Core 0.00 - 1.50 1.50 - 2.00 > 2.00
4 Core 0.00 - 3.00 3.00 - 4.00 > 4.00
8 Core 0.00 - 6.00 6.00 - 8.00 > 8.00

Perbedaan CPU Utilization vs Load Average

Kesalahan paling umum yang sering dilakukan oleh administrator pemula adalah menyamakan antara penggunaan CPU (CPU utilization) dengan load average. Keduanya mengukur dua hal yang berbeda secara fundamental:

  • CPU Utilization: Menyatakan persentase seberapa sibuk CPU mengeksekusi instruksi dalam suatu waktu (skala 0% hingga 100% per core).
  • Load Average: Menghitung jumlah proses yang ingin dikerjakan oleh CPU, termasuk proses yang harus antre karena CPU sedang sibuk atau karena proses tersebut sedang menunggu operasi I/O selesai (disk read/write).

Sebuah sistem dengan load average tinggi tetapi utilitas CPU rendah biasanya menandakan adanya hambatan pada perangkat penyimpanan (I/O bottleneck), seperti penggunaan HDD yang lambat atau latensi tinggi pada jaringan NFS.

Cara Memeriksa Load Average di Linux

Anda dapat memantau nilai load average menggunakan beberapa utilitas bawaan standar yang tersedia di hampir semua distribusi Linux:

# Menggunakan perintah uptime
uptime

# Menggunakan perintah top (tekan 'q' untuk keluar)
top

# Membaca langsung dari pseudo-file kernel
cat /proc/loadavg

Langkah Analisis Saat Load Average Tinggi

Jika Anda mendapati nilai load average melonjak drastis di atas jumlah core CPU, ikuti langkah-langkah teknis berikut untuk melakukan investigasi:

  1. Cek jumlah core CPU fisik dan logical pada sistem menggunakan perintah nproc atau lscpu.
  2. Gunakan utilitas top atau htop, lalu urutkan proses berdasarkan penggunaan CPU (tekan Shift + P) atau penggunaan memori (tekan Shift + M).
  3. Periksa status proses di kolom STAT/S. Jika banyak proses berstatus 'D' (uninterruptible sleep), artinya sistem mengalami masalah I/O disk. Gunakan perintah iostat atau iotop untuk melacak proses apa yang menulis/membaca disk secara berlebihan.
  4. Periksa penggunaan memori RAM dengan perintah free -m. Kekurangan RAM memicu swap thrashing yang membuat load average melonjak drastis.