Linux Üzerinde Performans İzleme

Linux işletim sistemi üzerinde çalışan cpu, memory, disk gibi aygıtların durumunu görmek için performans izleme komutları ve araçlar vardır. Bu yazıda linux sistemi üzerinde performans izleme ile ilgili bilgiler vereceğim. 
Bu yazıda şu alt başlıklara yer verilmiştir:

  1. Top Komutu
  2. Vmstat Komutu
  3. Ps Komutu
  4. Free Komutu
  5. Ipcs Komutu
  6. Strace Komutu
  7. Netstat ve Tcpdump Komutları
  8. Pmap Komutu
  9. Lsof Komutu
  10. Iostat Komutu
  11. Sar ve kSar Araçları
  12. Df Komutu

Top Komutu:

Top komutu, iki sn aralıklarıla işlemcinin yük miktarını, işlemlerin (prosess) kullandıkları bellek ve cpu miktarlarını gösteren bir araçtır. Aşağıdaki gibi çalıştırılır.

# top

Örnek çıktısı aşağıdaki gibidir.

Top komutunun çıktısında işlemci (CPU) ortalama yük miktarını (Load Avarage), işlemci durumu, bellek (memory) kullanım miktarı ve swap alanının kullanım bilgilerini görebiliriz.
Load avarage, işlemcide işleme tabi tutulacak kuyruktaki işlemlerin (process) ortalama sayılarıdır.
Swap alanı, bellek alanımızın yetersiz kalması sonucu kullanılır. Swap alanı kullanımının artması HDD’nin okuma/yazma hızına bağlı olarak ciddi yavaşlık olacağını gösterir.
Top komutunda çıktıyı özelleştirebiliriz. Örneğin sadece “emrah” kullanıcısının işlemlerini aşağıdaki komut  ile izleyebiliriz.

# top u emrah c

Top komutunun bir çok parametresi vardır. Bu parametreleri görmek için “man top” komutunu çalıştırarak görebilirsiniz. “c” parametresi işlemlerin tam adının gösterilmesini sağlar. Çıktısı aşağıdaki gibidir.

Çalışan bir process aşağıdaki gibi sonlandırılır.

# kill <PID>
# kill -9 <PID>

Process’i zorla kapatmak için -9 parametresini kullanabilirsiniz. Bu kapatma sinyalinin seviyesidir. Process’i sonlandırmak için 64 sinyal seviyesi vardır. Bunları “kill -l” komutu ile görebilirsiniz. Aşağıdaki gibi bir çıktı verecektir.

Kill ile ilgili daha detaylı bilgi almak için “man kill” komutunu çalıştırabilirsiniz.

Vmstat Komutu

Vmstat komutu, makinedeki sanal bellek (virtual memory) kullanımı ile ilgili bilgi verir. Çıktısı aşağıdaki gibidir.

# vmstat


Procs kısmında; “r” çalışma zamanı için bekleyen işlem sayısını, “b” kesilemez uyku durumundaki işlem sayısını gösterir.
Swap kısmında; “si” swap alanından fiziksel belleğe aktarılan bellek miktarını kb/s olarak, “so” swap alanına aktarılan bilgi miktarını belirtir.
IO, giriş/çıkış (input/output) işlemleriyle ilgili bilgileri verir. “bi” blok bazında işlem yapan aygıta birim zamanda gönderilen blok sayısını, “bo” blok bazında işlem yapan aygıttan birim zamanda alınan blok sayısını gösterir.
System kısmında, “in” saniye de gelen kesme (interrupt) sayısını, “cs” saniyede gerçekleşen bağlam değişimi (context switching) sayısını gösterir.
CPU kısmında, “us” kullanıcı zamanında geçen CPU zamanı % olarak, “sy” sistem zamanında geçen CPU zamanı, “id” kullanılmayan CPU zamanını gösterir.

Ps Komutu

Çalışan işlemleri (process) izlemek için kullanılan komuttur. Örnek çıktısı aşağıdaki gibidir.

# ps


“ps” komutunun birçok parametresi vardır örneğin o makinedeki bütün işlemleri listelemek için “-ef” parametresi “ps -ef” şeklinde kullanılabilir. Belirli bir işlemi görmek için pipe line “|” kullanılarak filtreleme yapılabilir. örneğin “smon” arkaplan işleminin detayı aşağıdaki komut ile gösterile bilir.

# ps -ef | grep smon

Free Komutu

Free komutu, sistemin o anki sanal bellek durumunu gösterir. Örnek çıktısı aşağıdaki gibidir.

Değerler varsayılan olarak KB cinsinden gösterilir. -b, -m, -g parametreleriyle çıktı byte, megabyte, gigabyte cinsinden gösterilebilir. “-s” parametresiyle belirli zaman aralıkları ile çıktıyı gözlemleye biliriz. Örneğin 2 sn de bir çıktı gözlemlemek için “free -s 2” veya “watch free” komutları çalıştırılır.

Ipcs Komutu

ipcs komutu “-m” parametresi ile kullanıldığında yapılandırılmış paylaşımlı bellek segmentlerini gösterir.

Strace Komutu

Uygulamaların hangi zamanda hangi kodun işlendiği bilgisini verir. Aynı zamanda sistem içine erişilen dosyaların ve kullanılan kütüphaneler hakkında da bilgiler verir. Bu komut linux işletim sistemi üzerinde yüklü olmaya bilir. Linux dağıtımının makineye mount edilip kurulması gerekmektedir.

Netstat ve Tcpdump Komutları

Ağ ile alakalı bilgilerin görüntülenebileceği bir araçtır. Yönlendirme tablolarından açık port bilgilerine kadar ağ ile alakalı bilgiler görüntülene bilir. Kullanımları ile ilgili detaylı bilgiyi “man netstat” veya “man tcpdump” komutları ile alabilirsiniz.
 

Pmap Komutu

Pmap, belirli bir işlem (process) ile ilişkilendirilmiş bellek kullanımını gösterir.

Lsof Komutu

Sistem üzerindeki açık dosyaları listeler. “-u” parametresi ile belirli bir kullanıcının açık dosyalarını listeleye biliriz.

Iostat Komutu

I/O, Giriş/Çıkış istatistikleri ile ilgili detaylı bilgi verir. PArametresiz kullanıldığında, sistemin son açılmasından itibaren disk ve işlemci kullanımı ile ilgili bilgi verir. Sistemde default olarak kurulu gelmez. Aşağıdaki şekilde kurup çalıştırabilirsiniz.

# yum install sysstat

İki parametre ile kullanılır. İlk parametre her örneklemenin zaman aralığı, ikinci parametre örnekleme sayısını gösterir. Bu örnekte 1 sn aralıkla 2 örnek aldım. Ekran çıktısı aşağıdaki gibidir.

Sadece belirli bir diski izlemek için “-p” parametresi kullanılır.

# iostat -p sda 1 2

Sadece disk kullanım bilgisi görüntülenmek isteniyorsa “-d” parametresi, sadece işlemci kullanım bilgisi görüntülenmek isteniyorsa “-c” parametresi kullanılır. Daha fazla parametre için “man iostat” komutunu çalıştırabilirsiniz.

Sar ve kSar Araçları

Sar (System Activity Reporter), sistem aktivitelerini raporlayan bir araçtır. Sar ile toplanan veriler dosyalarda saklanıp rapor haline getirile bilir. Sysstat paketinin yüklenilmesiyle periyodik çalışacak şekilde sa1 ve sa2 scriptlerini cron’a yazar. Bunu “/etc/cron.d/sysstat” dosyasından kontrol edebilirsiniz.

sa1 scripti varsayılan olarak 10 dakika aralıklarla çalışır. ve bütün sistem istatistiklerini toplar. Burada 10 dakika aralıklarla alınan veriler ne kadar doğru olduğu tartışılır. Çünkü her saniye işlemci ve diskin yaptığı işlem arasında uçurum farklar olabilir. Bu oluşturulan cron, her çalıştığında 1 saniye aralıklarla birden fazla örnek aldırmak sonuçların doğruluğunu daha da arttıra bilir. 1 saniye aralıklarla 3 örnek almak için 3. satırı aşağıdaki gibi yapın. Bu şekilde yapmak, cron her çalıştığında 3 örnek alacağı anlamına gelmektedir.

*/10 * * * * root /usr/lib64/sa/sa1 1 3

Toplanan veriler “/var/log/sa” dizini altında toplanır. sa2 scripti günde bir kere çalışıp sa1 scriptinin topladığı verileri rapor haline getirir.
Raporları görmek için sar aracı aşağıdaki şekilde kullanılır.

Ksar, oluşturulmuş raporları görsel olarak görmemizi sağlayan bir araçtır. Raporları görsel olarak görmek için Ksar aracını kurabilirsiniz.

Df Komutu

Df komutu ile makineye bağlı disklerin doluluk oranlarını ve nereye mount edildiğini görebilirsiniz. Parametreleri için “man df” komutunu çalıştırabilirsiniz.

Leave a Reply

Your email address will not be published. Required fields are marked *