X
Lütfen Ülke (Bölge) Seçiniz
Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X
X
Lütfen Ülke (Bölge) Seçiniz
Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Load Average Nedir? Linux Sunucuda Yük Değerlerini Doğru Okumak

AnasayfaYazılarSunucu YönetimiLoad Average Nedir? Linux Sunucuda ...

Kısaca: Load average nedir sorusunun kısa cevabı şudur: Linux sunucuda son 1, 5 ve 15 dakika boyunca işlemci kullanan veya işlemci sırası bekleyen süreçlerle, disk gibi bir giriş/çıkış işlemini bekleyen süreçlerin ortalama sayısıdır. Bu değer işlemci çekirdeği sayısına göre okunur. 4 çekirdekli bir sunucuda 4 civarı bir değer, işlemcilerin sürekli dolu olduğu anlamına gelir. Değer çekirdek sayısını uzun süre aşıyorsa işler sıraya giriyor demektir.

VPS veya sunucu yöneten herkes uptime ya da top komutunun ilk satırında üç sayı görür. Bu yazıda bu üç sayının ne anlattığını, ne zaman endişelenmeniz gerektiğini ve yük yüksek çıktığında nedeni adım adım nasıl bulacağınızı anlatıyoruz.

Load average nedir ve neyi sayar?

Linux çekirdeğinin /proc/loadavg belgesine göre ilk üç alan, çalışma kuyruğundaki (R durumu) veya disk G/Ç'si bekleyen (D durumu) işlerin 1, 5 ve 15 dakikalık ortalamasıdır. uptime ve top aynı sayıları gösterir. Yani load average yalnızca işlemci yükünü değil, bekleyen işi de ölçer:

  • R (runnable): O an işlemciyi kullanan ya da işlemci sırası bekleyen süreçler.
  • D (uninterruptible): Kesintisiz bekleyen süreçler. Bunlar çoğunlukla diskten okuma veya diske yazma işleminin bitmesini bekler.

Brendan Gregg'in Linux load average incelemesinde anlattığı gibi bu sayılar basit bir ortalama değil, eski değerlerin etkisini giderek azaltan üstel bir ortalamadır. Bu yüzden ani bir yük artışı önce 1 dakikalık değerde görünür, 15 dakikalık değer ise daha yavaş tepki verir.

Load average neyi sayar: CPU bekleyen R süreçleri ve disk bekleyen D süreçleri toplanarak yük değerini oluşturur

Üç sayı nasıl okunur?

Örneğin uptime çıktısında load average: 3.90, 2.10, 0.80 görüyorsanız sırasıyla son 1, 5 ve 15 dakikanın ortalamasına bakıyorsunuz. Burada iki şeyi birlikte değerlendirin: değerin büyüklüğü ve yönü.

DurumNe anlama gelir?
1 dk > 5 dk > 15 dkYük artıyor. Yakın zamanda bir iş, trafik veya zamanlanmış görev başlamış olabilir.
1 dk < 5 dk < 15 dkYük azalıyor. Bir yoğunluk yaşanmış ve geçmekte.
Üç değer de benzerYük bir süredir aynı seviyede. Çekirdek sayısıyla kıyaslayarak yorumlayın.

Değerin büyüklüğünü yorumlamak için önce sunucunun kaç işlem birimi kullanabildiğini öğrenin:

nproc

uptime belgesi bunu açıkça yazar: load average çekirdek sayısına göre normalleştirilmez. Tek işlemcili bir sistemde 1 değeri işlemcinin sürekli dolu olduğunu, 4 işlemcili bir sistemde ise zamanın yüzde 75'inde boşta kaldığını gösterir. Pratik bir okuma için load average değerini nproc sonucuna bölebilirsiniz. Sonuç 1'in altındaysa genellikle bekleyen iş yoktur, uzun süre 1'in üstündeyse süreçler sıra bekliyordur. Bu her sunucu için geçerli sabit bir eşik değildir; kendi sunucunuzun normal değerlerini zaman içinde izlemek en güvenilir ölçüttür.

Yüksek load average her zaman işlemci sorunu mu?

Hayır. Linux D durumundaki süreçleri de saydığı için işlemci kullanımı düşükken load average yüksek görünebilir. Bu durumda darboğaz çoğunlukla disktir: yavaş bir depolama birimi, aşırı log yazan bir uygulama, büyük bir yedekleme işi veya bellek yetmediği için swap kullanımı. Gregg'in yazısında belirtildiği gibi bazı kilit beklemeleri de bu sayıma girebilir; bu yüzden tek bir sayıya bakıp karar vermek yerine nedeni ayrıca doğrulamak gerekir.

Tersi de mümkündür: işlemci kullanımı yüzde 100'e yakın görünürken load average çekirdek sayısının altında kalabilir. Bu, işlemcinin dolu çalıştığı ama sırada bekleyen işin az olduğu anlamına gelir ve tek başına bir sorun değildir. Önemli olan, işlerin ne kadar beklediğidir. Kullanıcılar yavaşlık hissetmiyorsa ve değerler normal aralığınızdaysa genellikle müdahale gerekmez.

Yük yüksekse nedeni nasıl bulunur?

  1. Bağlanın ve durumu görün: Sunucuya SSH ile bağlanın ve uptime ile üç değeri, nproc ile çekirdek sayısını kontrol edin.
  2. İşlemci mi, disk mi? vmstat 1 5 komutunu çalıştırın. vmstat belgesine göre r sütunu çalışmaya hazır süreçleri, b sütunu G/Ç bekleyen süreçleri, wa G/Ç bekleme süresini gösterir. r çekirdek sayısının üstündeyse işlemci, b ve wa yüksekse disk tarafına bakın.
  3. Sanal sunucuda st sütununa bakın: st, sanal makineden "çalınan" yani hipervizörün başka işlere verdiği süredir. Bu değer sürekli yüksekse sorun sizin uygulamanızda değil, altyapı tarafında olabilir; sağlayıcınızla paylaşın. Kaynakların nasıl ayrıldığını merak ediyorsanız VDS ve VPS farkı yazımıza göz atabilirsiniz.
  4. Süreci bulun: top içinde CPU'ya göre sıralayarak en çok işlemci kullanan süreci görün. D durumundaki süreçleri listelemek için şu komutu kullanabilirsiniz:
ps -eo state,pid,cmd | grep '^D'
  1. Belleği kontrol edin: free -h ile belleği ve swap kullanımını görün. Bellek sürekli doluysa sistem swap'a yazar ve bu da disk beklemesini artırır. Gerekirse swap alanı ekleyebilir, ama kalıcı çözüm için uygulamanın bellek ihtiyacını gözden geçirin.
  2. Zamanlamaya bakın: Yük her gün aynı saatte artıyorsa yedekleme, cron işi veya rapor gibi zamanlanmış bir görev olabilir. Bu işleri yoğun olmayan saatlere taşımak çoğu zaman yeterlidir.

Load average'ı düzenli izlemek

Load average tek başına bir alarm değil, bir göstergedir. Asıl değerli olan, sunucunuzun normal günlerde hangi aralıkta çalıştığını bilmektir. CPU, RAM ve diski birlikte izlemek için sunucu kaynak kullanımı nasıl izlenir rehberimizi kullanabilirsiniz. Ziyaretçileriniz sitenin yavaşladığını söylüyorsa sunucu yükü olası nedenlerden yalnızca biridir; diğer nedenler için web sitesi neden yavaş açılır yazımıza da bakın.

Özetle: üç sayıyı çekirdek sayısıyla kıyaslayın, artış mı azalış mı olduğuna bakın, yüksekse önce işlemci mi disk mi olduğunu ayırın ve ardından süreci bulun. Bu sırayla ilerlediğinizde çoğu yük sorununun nedenini birkaç dakikada görebilirsiniz.

Sık Sorulan Sorular

Load average kaç olmalı?

Herkes için geçerli tek bir değer yoktur. Değeri nproc ile bulduğunuz çekirdek sayısıyla kıyaslayın. Değer uzun süre çekirdek sayısının üstündeyse süreçler sıra bekliyordur.

Load average ile CPU kullanım yüzdesi aynı şey mi?

Hayır. CPU yüzdesi işlemcinin ne kadar meşgul olduğunu gösterir. Load average ise çalışan, işlemci bekleyen ve disk bekleyen süreçlerin ortalama sayısıdır. Bu yüzden CPU düşükken load average yüksek olabilir.

Neden üç ayrı değer var?

Son 1, 5 ve 15 dakikanın ortalaması birlikte yükün yönünü gösterir. 1 dakikalık değer en büyükse yük artıyor, en küçükse azalıyor demektir.

Yük yüksekken sunucuyu yeniden başlatmalı mıyım?

Önce nedeni bulun. Yeniden başlatma yükü geçici olarak düşürebilir ama neden bir uygulama, zamanlanmış görev veya disk darboğazıysa sorun kısa sürede geri gelir.


Powered by WISECP
Top