Linux Yük Ortalaması (Load Average) Nedir? 1, 5 ve 15 Dakikalık Ortalamaların Anlamı

Linux sistemlerde yük ortalaması (load average) nedir? 1, 5 ve 15 dakikalık değerlerin anlamı, CPU çekirdekleriyle ilişkisi ve sistem performansının nasıl değerlendirileceği hakkında detaylı rehber.

I
ITWISE
2 görüntülenme
Linux Yük Ortalaması (Load Average) Nedir? 1, 5 ve 15 Dakikalık Ortalamaların Anlamı

Yük Ortalaması Nedir ve Neden Önemlidir?

Linux sistemlerine giriş yaptığınızda uptime veya top komutunu çalıştırdığınızda karşınıza "load average" olarak adlandırılan üç sayı çıkar. Bu sayılar, sistemin ne kadar yoğun olduğunu gösteren birer göstergedir. Ancak, 2.5 gibi bir değer, sadece 2 çekirdekli bir dizüstü bilgisayarda ve 32 çekirdekli bir sunucuda tamamen farklı anlamlara gelir. Bu değerleri tek başına değerlendirmek neredeyse hiçbir anlam ifade etmez.

Bu rehberde, yük ortalamasının ne ölçtüğünü, neden üç farklı zaman dilimi için hesaplandığını ve bu değerlerin ne zaman sağlıklı olduğunu, ne zaman sistemde bir sorun olduğunu nasıl anlayabileceğinizi öğreneceksiniz.

Yük Ortalaması Neyi Ölçer?

Yük ortalaması, belirli bir zaman dilimi boyunca CPU kullanımında olan veya CPU kullanımı için bekleyen süreçlerin ortalama sayısını gösterir. Linux'ta ayrıca kesintisiz uyku durumundaki (uninterruptible sleep) süreçler de bu sayıya dahil edilir. Bu durum genellikle disk veya diğer I/O işlemleriyle ilgili beklemeleri ifade eder. Bu detay, Linux'u diğer bazı sistemlerden ayıran önemli bir özelliktir ve CPU'nun büyük ölçüde boş görünmesine rağmen sistemde yüksek bir yükün görülmesine neden olabilir.

Özetle: Yük ortalaması, "şu anda kaç görev kaynaklar için rekabet ediyor?" sorusuna yanıt verir. "CPU'nun yüzde kaçında kullanım var?" sorusuna değil. Yavaş bir diskte bekleyen bir süreç, CPU kullanmıyor olsa bile yük ortalamasına dahil edilir.

Yük Ortalamasının Üç Değeri (1, 5, 15 Dakika)

uptime komutunu çalıştırdığınızda, çıktının sonunda üç sayı görürsünüz. Bu sayılar, sistemin son 1, 5 ve 15 dakika boyunca ortalama yükünü temsil eder. Örneğin:

 14:32:51 up 7 days, 3:14, 2 users, load average: 0.52, 0.74, 0.91

Bu çıktının anlamı şudur:

  • 0.52: Son 1 dakika boyunca ortalama yük.
  • 0.74: Son 5 dakika boyunca ortalama yük.
  • 0.91: Son 15 dakika boyunca ortalama yük.

Bu üç değeri birlikte değerlendirmek, sistemdeki yükün trendini anlamak açısından oldukça önemlidir. Eğer 1 dakikalık yük, 15 dakikalık yükten yüksekse, sistemin yükü artıyordur. Tersi durumdaysa, geçici bir yük artışı yaşanmış ve sistem normale dönüyordur. Yukarıdaki örnekte, yükün kademeli olarak düştüğü görülmektedir.

Yük Ortalaması ve CPU Çekirdekleri Arasındaki İlişki

Yük ortalamasının anlamı, sistemdeki mantıksal CPU çekirdeklerinin sayısıyla karşılaştırıldığında ortaya çıkar. Her mantıksal çekirdek, aynı anda bir görevi çalıştırabilir. 1.0 yükü, bir çekirdeğin tamamen dolu olduğunu gösterir. Tek çekirdekli bir sistemde bu, sistemin tam kapasitede çalıştığı anlamına gelirken, dört çekirdekli bir sistemde diğer üç çekirdek henüz kullanılmamış demektir.

Kural basittir: Yük ortalamasını çekirdek sayısına bölün:

  • Yük, çekirdek sayısına eşitse: Sistem tam kapasitede kullanılıyor, ancak bekleyen süreç yok.
  • Yük, çekirdek sayısından düşükse: Sistemde boş kapasite var.
  • Yük, çekirdek sayısından yüksekse: Süreçler sıraya girmiş ve CPU zamanına bekliyor.

Sisteminizdeki mantıksal CPU çekirdeklerinin sayısını öğrenmek için aşağıdaki komutu kullanabilirsiniz:

$ nproc
4

Dört çekirdekli bir sistemde 0.91 yükü oldukça rahattır, çünkü bu değer 4'ten oldukça düşüktür. Aynı 0.91 değeri, tek çekirdekli bir sanal makinede CPU'nun neredeyse tamamen dolu olduğu anlamına gelir.

Yük Ortalamasının Nerede Görüntüleneceği

Yük ortalamasını görüntülemek için birkaç farklı araç bulunmaktadır. Hangi aracı kullanacağınız, ne kadar detay istediğinize bağlıdır.

  • uptime: En hızlı görüntülemeyi sağlar. Üç değeri tek bir satırda gösterir.
  • top: Aynı değerleri başlıkta gösterir ve sürekli olarak yeniler. Ayrıca her süreç için CPU kullanımını da listeler.
  • htop: Daha kullanıcı dostu bir arayüz sunar ve renkli ölçümlerle yük ortalamasını gösterir.
  • w: Yüklenmiş kullanıcıların listesinin üzerinde yük ortalamasını gösterir.

Komut satırından doğrudan değerleri okumak için, çekirdek verilerine doğrudan erişim sağlayan /proc/loadavg dosyasını kullanabilirsiniz:

$ cat /proc/loadavg
0.52 0.74 0.91 1/523 18204

İlk üç alan, bilindik 1, 5 ve 15 dakikalık ortalamalardır. Dördüncü alan 1/523, çalışabilir durumdaki süreç sayısını toplam süreç sayısına oranını gösterir. Son alan ise en yeni oluşturulan sürecin PID'sidir. Sabit bir formata sahip olduğu için, /proc/loadavg dosyası izleme komut dosyalarında kolayca ayrıştırılabilir.

Yük Ortalaması ve CPU Kullanımı Arasındaki Fark

Yük ortalaması ve CPU kullanımını aynı şey gibi düşünmek cazip gelse de, aslında farklı sorulara yanıt verirler. CPU kullanımı, işlemcinin şu anda ne kadar süre çalıştığını gösterirken, yük ortalaması zamanla düzeltilmiş şekilde CPU ve diğer kaynaklar için rekabet eden görevlerin sayısını gösterir.

Bu fark, I/O yoğunluklarında özellikle belirginleşir. Bir süreç yavaş bir diskte bekliyorsa, yük ortalamasına dahil edilir, ancak CPU kullanımı çok düşük olur. Dört çekirdekli bir sistemde 8 yükü varken, top komutu CPU'nun %90 boş olduğunu gösterebilir. Bu durumda darboğaz diskte değil, CPU'dadır ve çözüm CPU yerine I/O'nun araştırılmasıdır. Gerçek kısıtlamanın hangi kaynak olduğunu bulmak için top, vmstat veya iostat gibi araçlarla yük okumalarını birleştirmelisiniz.

Hızlı Referans Tablosu

Okuma Açıklama
1 dakikalık yük Kısa vadeli baskı. Ani artışlara hızlı tepki verir.
5 dakikalık yük Orta vadeli baskı. Kısa süreli değişiklikleri düzeltir.
15 dakikalık yük Uzun vadeli trend. Sürekli yükler için en iyisi.
yük < çekirdek sayısı Sistem genellikle boş kapasiteye sahiptir.
yük = çekirdek sayısı Sistem tamamen kullanılıyor, bekleme süresi az.
yük > çekirdek sayısı Süreçler CPU zamanı veya I/O için sıraya girmiş olabilir.

Sıkça Sorulan Sorular

İyi bir yük ortalaması nedir?

Cevap: Yük ortalamasının çekirdek sayısından düşük olması, sistemde boş kapasite olduğunu gösterir. Çekirdek sayısının üzerinde sürekli bir yük, süreçlerin beklediğini gösterir. İyi bir sayı yoktur; bu tamamen sistemdeki çekirdek sayısına bağlıdır.

1.0 yükü kötü mü?

Cevap: Tek çekirdekli bir sistemde 1.0, CPU'nun tamamen dolu olduğunu ve başvuru olmadığını gösterir. Çok çekirdekli bir sistemdeyse 1.0, diğer çekirdeklerin boş olduğu anlamına gelir. Her zaman değeri nproc komutundan alınan çekirdek sayısına bölün.

CPU boş görünmesine rağmen yük neden yüksek?

Cevap: Linux, kesintisiz uyku durumundaki süreçleri (genellikle disk veya diğer I/O beklemeleri) de yük ortalamasına dahil eder. CPU boş görünürken yükün yüksek olması, darboğazın CPU değil, disk olduğunu gösterir.

Üç değerden hangisine dikkat etmeliyim?

Cevap: Üç değeri karşılaştırın. Eğer 1 dakikalık değer 15 dakikalık değerden yüksekse, yük artıyordur. Tersi durumdaysa, geçici bir artış yaşanmış ve sistem normale dönüyordur. 15 dakikalık değer, sürekli bir trendin en iyi göstergesidir.

Sonuç

Yük ortalaması, sistemdeki talep miktarını ölçen bir değerdir ve sadece mantıksal CPU çekirdeklerinin sayısıyla karşılaştırıldığında anlam kazanır. Yüksek bir yük, CPU kullanımına denk gelmiyorsa, disk veya diğer I/O kaynaklarında darboğaz olabileceğini düşünün. Gerçek darboğazı bulmak için top, vmstat veya iostat gibi araçları kullanın.

İpucu: Yük ortalaması ve CPU kullanımını birlikte izleyin. Yük yüksek ama CPU kullanımı düşükse, I/O performansını kontrol edin.

Uyarı: Yük ortalamasını tek başına değerlendirmeyin. Sisteminizin çekirdek sayısını mutlaka hesaba katın.

Kaynak

Linuxize