Linux'ta Performans Takibi için Kullanabilecek Komutlar

YoRuMSuZ

Biz işimize bakalım...
Sistem ve Network(Ağ) yöneticileri için, her gün Linux Sistem Performans takibi ve bakımı oldukça zor bir iştir. IT sektöründeki Linux yöneticileri bu konuda hemfikirdir. Bu makalede Linux/Unix Sistem Yöneticileri tarafından sıklıkla kullanılan sistem (performans) izleme araçları hakkında bilgi vereceğiz. Sistem izleme ve sistemde performans problemlerinin tespiti için kullanılan bu yazılımlar tüm Linux dağıtımlarında mevcuttur.

linux-komut-1.png


Sistem analiz ve izleme metodunuza göre bu yazılımlardan bir veya birkaçını kullanabilirsiniz.

1. top
: Sistem yöneticileri tarafından sistem performansını izlemek için en çok kullanılan yazılımlardan biridir ve birçok Linux/Unix işletim sisteminde sistem kurulumu ile hazır gelir. Sistemde çalışan ve aktif olan işlemleri ve hizmetleri sıralı olarak ve belli zaman aralığında güncelleyip listeler. CPU(İşlemci) kullanımı, Memory(Hafıza-RAM) kullanımı, Swap, Process PID gibi donanım kaynaklarının kullanımı, çalışan işlemler/hizmetler vb. bilgileri gösterir. İşlemci ve RAM belleği fazla kullanan işlemleri de görüntüler. top komutu sistem yöneticilerinin sistemi izlemek ve gerektiğinde doğru aksiyonu almak için kullandığı çok önemli bir programdır. Kullanımı ile ilgili birkaç örnek;

İşlemler/hizmetler, memory(hafıza), cpu(işlemci), swap gibi bilgileri görüntülemek için, Terminal’den top komutunu verin.
linux-komut-2.png


Bilgileri renkli olarak görüntülemek için, program çalışırken z tuşuna basın, çıkmak için q tuşuna basın.
linux-komut-3.png


Belli kullanıcıya ait işlemleri görüntülemek için top -u <kullanıcı adı> şeklinde kullanın.
linux-komut-4.png


Çalışan işlemlerin sistem yolunu görüntülemek için, program çalışırken c tuşuna basın.
linux-komut-5.png


Çalışan herhangi bir hizmeti/işlemi sonlandırmak için, program çalışırken k tuşuna basıp sonlandırmak istediğiniz işlemin PID kodunu girin ve Enter tuşuna basın,-.
linux-komut-6.png


CPU (işlemci) kullanımına göre işlemleri/hizmetleri sıralamak için, program açıkken (Shift+P) tuş kombinasyonunu kullanın.

Çalışan bir işlemin/hizmetin önceliğini değiştirmek için, program açıkken r tuşuna basın ve işlemin PID kodunu girip Enter tuşuna basın.
linux-komut-7.png


top komutu yardım sayfasını görüntülemek için, program açıkken h tuşuna basın.
linux-komut-8.png



Kaynak: Alıntıdır...
 

YoRuMSuZ

Biz işimize bakalım...
2. vmstat : Disk, hafıza, cpu, I/O blokları gibi sistem işlemleri/hizmetleri ve donanım kaynaklarının kullanımı ile ilgili istatistikleri görüntülemek için kullanılır. Bu komutun kullanılabilmesi için sysstat paketinin sistemde kurulu olması gerekir. Uygulama, sistem kullanım bilgilerini 6-başlık şeklinde listeler. En önemlileri memory başlığı altındaki free ve swap kolonunda bulunan si, so alanlarıdır.
linux-komut-9.png


  • free – Kullanılmayan/boşta olan bellek/ram miktarı
  • si – Diskten , takas alanı olarak saniyede kullanılan alanın Kilo Byte olarak boyutu.
  • so – Diske saniyede iade edilen/boşa çıkan takas alanının Kilo Byte olarak boyutu.
Herhangi bir parametre olmaksızın kullanırsanız, sistemin boot edildiği/başlatıldığı andan itibaren sistem istatistiğinin özetini gösterir.

Aşağıdaki komut ile vmstat komutunu 2 saniyelik aralıklarla 6 defa çalıştırabilirsiniz.
linux-komut-10.png


-t seçeneği kullanılırsa her satırda, komutun çalıştırıldığı tarihi/saati de gösterir.
linux-komut-11.png


-s seçeneği ile sistemdeki işlemler/hizmetler ve bellek ile ilgili istatistiği görüntüleyebilirsiniz.
linux-komut-12.png


-d seçeneği ile sistemdeki disklerin istatistiğini görüntüleyebilirsiniz.
linux-komut-13.png


-S ve M parametreleri ile istatistik verilerini Megabyte olarak görüntüleyebilirsiniz.
linux-komut-14.png
 

YoRuMSuZ

Biz işimize bakalım...
3. lsof : LiSt Open Files (Açık Dosyaları Listele) ifadesinin kısaltılmış şekli ile isimlendirilen yazılım, herhangi bir işlem/hizmet tarafından açılmış dosyaları bulmak ve listelemek için kullanılır. Bildiginiz gibi Linux herşeyi dosya olarak dikkate alır ve dosyalarla (disk files, network sockets, pipes, processes, devices) düzenler. Bazı dosyaların açık veya kullanımda olduğu şeklinde bir hata nedeniyle bir diski sistemden unmount edemediğinizde (dosya sisteminden çıkaramadığınızda) lsof komutu ile açık olan veya kullanımda olan dosyaları ve hangi işlem/hizmet tarafından açıldığını/kullanıldığını görüntüleyebilirsiniz.

Terminalden lsof komutunu girildiğinde Command, PID, USER, FD, TYPE vb. başlıkları şeklinde verileri listeler.
linux-komut-15.png


Başlıklar ve verileri açıklayıcı ve anlaşılırdır. Bununla birlikte FD ve TYPE başlıkları ile ilgili biraz daha bilgi paylaşacağız.

FD File Descriptor (Dosya açıklayıcı) ifadesinin kısaltılmış şeklidir. Başlık altındaki bazı değerlerin açılımı ve açıklamaları şöyle;
  • cwd current working directory – sisteme login olan kullanıcının bulunduğu klasör
  • rtd root directory – root klasörü
  • txt program text (code and data) – text tabanlı program (kod ve veri)
  • mem mem-mapped file
1u şeklinde rakam ve devamında u,r,w harfleri olan değerler/parametreler, dosya tanımlayıcılardır.
  • r – for read access – okuma izni olan dosya
  • w – for write access – yazma izni olan dosya
  • u – for read and write access – okuma ve yazma izni olan dosya
TYPE – Dosya tipi ve kimliği
  • DIR DIRectory – Klasör
  • REG REGular file – Dosya
  • CHR CHaracteR special file
  • FIFO First In First Out
Belli bir kullanıcıya ait açık/kullanılan dosyaları görüntülemek için –u <kullanıcı adı> opsiyonunu kullanın.
linux-komut-16.png


Belli bir portta çalışan işlemlerin/hizmetlerin kullandığı açık dosyaları bulmak için –i opsiyonu, ardından protokol:Port numarası kombinasyonu kullanılır.
linux-komut-17.png


Açık ve kullanılan IPv4 ve IPv6 network dosyalarını ayrı komutlarla görüntüleyebilirsiniz.
linux-komut-18.png


1 ile 1024 (1-1024) arasındaki TCP portlarında çalışan ve aktif işlemler/hizmetler tarafından kullanılan ve açık olan dosyaları listelemek için, -i TCP:1-1024 opsiyonlarını kullanın.
linux-komut-19.png


1 ile 1024 (1-1024) arasındaki TCP portlarında çalışan ve aktif işlemler/hizmetler tarafından kullanılan ve açık olan dosyaları listelemek için, -i TCP:1-1024 opsiyonlarını kullanın.
linux-komut-20.png


Herhangi bir kullanıcının çalıştırdığı işlemin/hizmetin kullandığı/açık olan dosyaları görüntülememek için, –i -u^<kullanıcı adı> seçeneklerini kullanın.
linux-komut-21.png


Herhangi bir kullanıcının hangi komutu kullandığını ve hangi dosyaları görüntülediğini listelemek için -i -u <kullanıcı adı> seçeneklerini kullanın.
linux-komut-22.png


Sadece –i ile LISTENING ve ESTABLISHED durumundaki tüm network bağlantılarını görüntüleyebilirsiniz.
linux-komut-23.png


-p parametresini kullanarak işlemin/hizmetin PID kodu ile sorgulama yaparak kullandığı dosyaları listeleyebilirsiniz.
linux-komut-24.png


Belli bir kullanıcıya ait işlemlerin/hizmetlerin sadece PID kodlarını görüntülemek için -t –u <kullanıcı adı> seçenekleri ile sorgulama yapabilirsiniz.
linux-komut-25.png
 

YoRuMSuZ

Biz işimize bakalım...
4. tcpdump : Yaygın olarak kullanılan network paket analiz ve network paket izleme yazılımıdır. Ağ arayüzü ile network üzerinden gönderilen ve alınan TCP/IP paketlerini filtrelemek veya yakalamak için kullanılır. Yakaladığınız network paketlerini daha sonra incelemek için pcap formatında bir dosyada kaydedebilirsiniz. Birçok Linux/Unix tabanlı işletim sisteminde mevcuttur.

Yazılım, yüklenmemiş ise kullandığınız Linux dağıtımının paket yöneticisi ile kurabilirsiniz.

linux-komut-26.png


linux-komut-27.png


Yukarıdaki komutu çalıştırdığınızda tcpdump, işlemi iptal edene kadar belirtilen arayüzde bütün paketleri yakalamaya devam eder. İşlemi iptal etmek için CTRL + C tuş kombinasyonunu kullanın.

-c opsiyonunu ile yakalanacak paket sayısını belirleyebilirsiniz.
linux-komut-28.png


Yakalanan paketi ASCII formatında görüntülemek için –A seçeneğini kullanın.
linux-komut-29.png


Sistemdeki ag arayüzlerini görüntülemek için –D seçeneğini kullanın.
linux-komut-30.png


Herbir paketdeki, TCP/IP Link katmanı başlığını-header- içeren, veriyi-data- HEX ve ASCII formatında görüntülemek için –XX seçeneğini kullanın.
linux-komut-31.png


Yakalanan paketleri .pcap formatında dosyaya kaydetmek için –w opsiyonunu kullanın.
linux-komut-32.png


Kaydedilen dosyada yakalanan paketleri okumak ve analiz etmek için –r dosya adı.pcap opsiyonunu ve parametresini kullanın.
linux-komut-33.png


Belli bir ağ arayüzündeki IP adres paketlerini yakalamak için –n seçeneğini kullanın.
linux-komut-34.png


Sadece TCP paketlerini yakalamak için, tcp parametresini kullanın.
linux-komut-35.png


Sadece belli bir portun ağ trafiğindeki –mesela port 22- paketleri yakalamak için port <port no> parametrelerini kullanın.
linux-komut-36.png


Belli bir kaynak(source) IP adresinin paketlerini yakalamak için src <IP adres> parametrelerini kullanın.
linux-komut-37.png


Belli bir hedef(destination) IP adresinin paketlerini yakalamak için dest <IP adres> parametrelerini kullanın.
linux-komut-38.png
 

YoRuMSuZ

Biz işimize bakalım...
5. netsat : netstat (network statistics) gelen ve giden network paketleri(veya bağlantıları), ağ arayüzleri, yönlendirme tabloları (routing tables) istatistiklerini izleyen yazılımdır. Bütün Linux/Unix işletim sistemlerinde ve Windows işletim sisteminde bulunur. Sistem yöneticilerinin ağ performansı izleme ve ağ sorunlarını gidermek için kullandığı çok önemli bir programdır. netstat, hangi portların açık olduğunu ve hangi programların açık olan portlarda gelen bağlantılar için dinlemede olduğunu gösteren, en temel ağ izleme yazılımıdır.

Linux network yöneticileri kadar Linux sistem yöneticilerinin de ağ problemlerini tespit etmek ve gidermek, ağ trafik performansını izlemek ve belirlemek için kullandıkları çok önemli bir programdır.

LISTENING durumundaki tüm TCP ve UDP port bağlantılarını görüntülemek –a seçeneğini kullanın.
linux-komut-39.png


Sadece TCP port bağlantılarını görüntülemek için netstat –at komutunu kullanın.
linux-komut-40.png


Sadece UDP port bağlantılarını görüntülemek için netstat –au komutunu kullanın.
linux-komut-41.png


LISTENING durumundaki tüm aktif port bağlantılarını görüntülemek için netstat -l komutunu kullanın.
linux-komut-42.png


LISTEN durumundaki tüm aktif TCP portlarını görüntülemek için netstat –lt komutunu kullanın.
linux-komut-43.png


LISTEN durumundaki tüm aktif UDP portlarını görüntülemek için netstat –lu komutunu kullanın.
linux-komut-44.png


LISTENING durumundaki tüm aktif UNIX portlarını görüntülemek için netstat –lx komutunu kullanın.
linux-komut-45.png


-s seçeneğini kullanarak TCP, UDP, ICMP ve IP protokolleri için istatistikleri görüntüleyebilirsiniz.
linux-komut-46.png


Sadece TCP protokolüne ait istatistiklerini görüntülemek için netstat –st komutunu kullanın.
linux-komut-47.png


Sadece UDP protokolüne ait istatistikleri görüntülemek için netstat –su komutunu çalıştırın.
linux-komut-48.png


Servis adını PID numarası ile “PID/Program Name” formatında göstermek için netstat –tp komutunu çalıştırın.
linux-komut-49.png


-ac seçenekleri ile istenilen bilgiler belli zaman aralığında(saniye olarak) güncellenerek ekranda listelenebilir.
linux-komut-50.png


Kernel IP yönlendirme tablosunu (Kernel IP routing table) netstat ve route komutunu kullanın.
linux-komut-51.png


Sistemdeki ağ arayüzlerinde gönderilen ve alınan paketleri, MTU boyut bilgisi ile görüntülemek için netstat –i komutunu kullanın.
linux-komut-52.png


Kernel arayüz tablosunu (Kernel interface table) görüntülemek için netstat –ie komutunu kullanabilirsiniz; ifconfig komutu ile aynı işlevselliğe sahiptir.
linux-komut-53.png


IPv4 ve IPv6 bilgilerini görüntülemek için netstat –g komutunu kullanın.
linux-komut-54.png


Belli zaman aralığında (saniye olarak) netstat bilgilerini sürekli olarak listelemek için netstat –c komutunu kullanın.
linux-komut-55.png


Sistem tarafından desteklenmeyen adresleri görüntülemek için netstat –verbose komutunu çalıştırın.
linux-komut-56.png


Herhangi bir portta LISTEN/LISTENING durumunda olan programları listelemek için netstat –ap | grep <program> komutunu çalıştırın.
linux-komut-57.png


RAW Network(Ağ) İstatistiklerini görüntülemek için netstat –statistics –raw komutunu çalıştırın.
linux-komut-58.png
 

YoRuMSuZ

Biz işimize bakalım...
6. htop : İnteraktif ve gerçek zamanlı (real time) Linux işlem/servis izleme aracıdır. İşlevsellik olarak top komutuna benzemekle birlikte, işlemleri yönetmek için kullanıcı dostu arayüzü, klavye kısayolları, işlemleri yatay ve dikey olarak listeleyebilme vb. birçok extra özelliği vardır. 3. parti yazılımdır ve Linux sistemleri ile birlikte hazır kurulu gelmez; kullanılan dağıtımın paket yöneticisi ile kurulması gerekir.

linux-komut-59.png


Kurulumdan sonra terminalden htop komutunu vererek programı çalıştırabilirsiniz; t tuşuna basarak işlemleri ağaç görünümü formatında listeleyebilirsiniz.
linux-komut-60.png


linux-komut-61.png


  • Uygulamanın üst kısmında CPU, Memory, Swap, load average, Up-time baslıkları bulunur. Bu başlıkların bulunduğu kolonlar sırası ile CPU kullanımı, Swap kullanımı, Sistem load average durumu, Sistemin çalıştığı/açık olduğu süre bilgilerini içerir.
  • İşlemler/servisler CPU kullanımına göre sıralanır.
  • Program ekranın alt kısmında ise help, setup, kill, nice, quit menüler ve klavye kısayolları bulunur.
 

YoRuMSuZ

Biz işimize bakalım...
7. iotop : top komutuna ve htop programına benzer fakat, fonksiyonellik olarak diskte okuma-yazma (Disk I/O) yapan işlemleri/servisleri gerçek zamanlı olarak izler ve görüntüler. Diskte yüksek miktarda/oranda okuma-yazma (I/O) yapan işlemleri/servisleri tespit etmek için çok faydalı bir yazılımdır. Sistem, yönetici hesabı/oturumu ile çalıştırılmasına izin verir.

linux-komut-62.png


Sadece aktif disk yazma/okuma yapan işlemleri/servisleri görüntülemek için —only veya -o seçeneklerini kullanın.
linux-komut-63.png


Kullanımı ve klavye kısayolları ile ilgili bazı önemli bilgiler:

  • Sıralamayı değiştirmek için sağ veya sol yön(ok) tuşlarını kullanın
  • Uygulamanın versiyonunu görmek için –version seçeneğini kullanın
  • Kullanım bilgisini görüntülemek için –h seçeneğini kullanın
  • Sıralamayı ters çevirmek için –r opsiyonunu kullanın
  • Servisleri ve thread işlemleri kontrol etmek için –o opsiyonunu kullanın,
  • Interaktif olmayan moda geçmek ve disk okuma-yazma (I/O) kullanımının log girişlerini etkinleştirmek için –b seçeneğini kullanın
  • PID numarasına sahip herhangi bir servisin/thread-işlemin disk I/O kullanımını izlemek için –p PID seçeneği ve parametresini kullanın.
linux-komut-64.png


USER kullanıcısına ait işlemlerin/servislerin disk I/O kullanımını izlemek için –u USER seçeneğini ve parametresini kullanın.
linux-komut-65.png


Normalde iotop tüm thread ve işlemleri gösterir. Sadece işlemleri listelemek için –P seçeneğini kullanın.

Disk I/O kullanım band genişliğini izlemek yerine, kullanım değerlerinin toplamını izlemek için –a seçeneğini kullanın.
linux-komut-66.png
 

YoRuMSuZ

Biz işimize bakalım...
8. iostat : CPU (işlemci) istatistiğini ve yerel diskler, NFS diskler vb. depo(lama) aygıtlarının sistem girdi(input) ve çıktı(output) (disk okuma-yazma) bilgisini ve istastiğini görüntüler. Uygulamanın kullanılabilmesi için sistemde sysstat yazılımın yüklü olması gerekir.

linux-komut-67.png


Sadece işlemci (CPU) istatistiğini görüntülemek için -c parametresini kullanın.
linux-komut-68.png


Sadece sistemdeki disklerin ve disk bölümlerinin I/O (disk okuma-yazma) istatistiğini görüntülemek için -d parametresini kullanın.
linux-komut-69.png


Sistemdeki sadece belli bir (hard) diskin I/O (disk okuma-yazma) istatistiğini görüntülemek için -p parametresi ile birlikte, hard diskin sistem ismini kullanın.
linux-komut-70.png


Sadece, LVM(Logical Volume Manager) istatistiğini görüntülemek için, -N parametresini kullanın.
linux-komut-71.png


İostat yazılımın versiyonu görüntülemek için -V parametresini kullanın.
linux-komut-72.png
 

YoRuMSuZ

Biz işimize bakalım...
9. IPTraf : Gerçek zamanlı-anlık olarak- (real time) ağ izleme yapılabilen konsol tabanlı, açık kaynak kodlu yazılımdır. Ağ arayüzü TCP, UDP, IP, ICMP istatistiklerini; IP checksum hatalarını, TCP bağlantı ve byte sayısını, TCP flag bilgisini, ICMP ayrıntılarını, TCP/UDP trafiği analizini, ağ üzerindeki IP trafiği bilgilerini görüntüler. Birçok dağıtımın paket depolarında bulunur. Kullanımını göstermeden önce, uygulamayı sisteme kuruyoruz.

linux-komut-73.png


linux-komut-74.png


IP trafiği izleme
linux-komut-75.png


linux-komut-76.png


Ağ arayüzü istatistikleri
linux-komut-77.png


linux-komut-78.png


Detaylı, ağ arayüzü istatistikleri
linux-komut-79.png


linux-komut-80.png


TCP/UDP (port) analizi istatistikleri
linux-komut-81.png


LAN trafiği izleme
linux-komut-82.png


Program ayarları
linux-komut-83.png
 

YoRuMSuZ

Biz işimize bakalım...
10. psacct : Sistemdeki kullanıcıların aktivitelerini izlemek için kullanılır. Kullanıcı ait işlemleri, arka planda çalışan servisleri ve bunların sistem kaynakları kullanımını izler. Sistem yöneticileri tarafından, sistem kullanıcılarının yaptığı işlemleri, çalıştırdığı komutları, sistem kaynaklarını kullanım bilgisini, sistemde ne kadar süre aktif olduğu gibi bilgileri izlemek ve görüntülemek için kullandığı çok faydalı bir programdır.
  • ac komutu, kullanıcı login/logout süresi istatistiklerini saat birimde görüntüler.
  • lastcomm komutu , kullanıcı tarafından çalıştırılan komutları görüntüler.
  • accton komutu, işlemleri/servisleri kapatmak/açmak için kullanılır.
  • sa komutu, kullanıcı tarafından çalıştırılan komutların özet bilgisini görüntüler.
  • last ve lastb komutları, sisteme en son giriş yapan kullanıcı bilgilerini görüntüler.
psacct ve acct, aynı uygulamalardır. psacct RHEL, CentOS, Fedora dağıtımlarında mevcut olan; acct ise Ubuntu, Debian, Mint dağıtımlarında bulunan pakettir.

rpm tabanlı dağıtımlarda yüklemek için.
linux-komut-84.png


linux-komut-85.png


Debian/Ubuntu/Mint dağıtımlarında kurmak için.
linux-komut-87.png


Kurulum sonrasında psacct servisi devredışıdır. Manuel olarak servisi başlatıyoruz ve sistem başlatıldığında başlaması için servisi etkinleştiriyoruz.
linux-komut-88.png


linux-komut-89.png


linux-komut-90.png


ac komutu, kullanıcıların saat biriminde toplam login/logout sürelerinin istatistiğini gösterir.
linux-komut-91.png


Kullanıcıların her bir gün sistemde login oldukları toplam süreleri görüntülemek için, ac –d komutunu kullanın.
linux-komut-92.png


Sistemde login olunan kullanıcı hesabının sistemdeki login olarak bulunduğu toplam süre (saat olarak).
linux-komut-93.png
 
Top