CPU Monitoring

Faydalı bir komutu gözden geçirelim, uptime.

pete@icebox:~$ uptime

 17:23:35 up 1 day,  5:59,  2 users,  load average: 0.00, 0.02, 0.05

Bu kursun ilk dersinde uptime’dan bahsettik, ancak load average alanını ele almadık. Load average’lar, sisteminizdeki CPU yükünü görmenin iyi bir yoludur. Bu sayılar 1, 5 ve 15 dakikalık aralıklardaki ortalama CPU yükünü temsil eder. CPU yükünden ne kastettiğimi açıklayayım: CPU yükü, CPU tarafından yürütülmeyi bekleyen process’lerin ortalama sayısıdır.

Diyelim ki tek çekirdekli bir CPU’nuz var, bu çekirdeği trafikte tek şerit olarak düşünün. Eğer otoyolda yoğun saatse, bu şerit gerçekten çok meşgul olacak ve trafik %100 ya da load 1 olacaktır. Şimdi trafik o kadar kötüleşti ki otoyolu tıkıyor ve normal yolları da iki katı araçla meşgul ediyor, load’unuzun %200 veya load 2 olduğunu söyleyebiliriz. Şimdi biraz açıldığını ve otoyol şeridinde sadece yarısı kadar araç kaldığını varsayalım, şeridin yükünün 0.5 olduğunu söyleyebiliriz. Trafik hiç yokken ve eve daha hızlı gidebildiğimizde, load ideal olarak çok düşük olmalıdır, mesela gece 2’deki trafik kadar düşük. Bu durumda arabalar process’lerdir ve bu process’ler sadece otoyoldan çıkıp eve gitmeyi beklemektedir.

Şimdi load average’ınız 1 diye bilgisayarınızın sürünmekte olduğunu söyleyemeyiz. Günümüzdeki çoğu modern makinenin birden fazla çekirdeği vardır. Dört çekirdekli bir işlemciniz (4 çekirdek) varsa ve load average’ınız 1 ise, aslında CPU’nuzun sadece %25’ini etkiliyordur. Her çekirdeği trafikte bir şerit olarak düşünün. Sistemde kaç çekirdeğiniz olduğunu cat /proc/cpuinfo ile görebilirsiniz.

Load average’ı gözlemlerken, çekirdek sayısını hesaba katmanız gerekir; eğer makinenizin her zaman ortalamanın üzerinde bir load kullandığını görürseniz, ters giden bir şeyler olabilir.

Last updated