Takip et

Linux’ta atop Komutuna Kapsamlı Bir Rehber

Linux’ta atop Komutuna Kapsamlı Bir Rehber Linux sistemlerinde performans analizi ve sorun giderme, sistem yöneticileri ve geliştiriciler için kr

Linux’ta atop Komutuna Kapsamlı Bir Rehber

Linux sistemlerinde performans analizi ve sorun giderme, sistem yöneticileri ve geliştiriciler için kritik öneme sahip görevlerdir. Bu süreçte kullanılan birçok araç bulunmakla birlikte, bazıları belirli alanlarda uzmanlaşmışken, bazıları da daha geniş bir bakış açısı sunar. atop, ikinci kategoriye giren, kapsamlı ve etkileşimli bir sistem performans izleme aracıdır. Bu rehberde, atop komutunun ne olduğunu, nasıl kurulduğunu, temel ve gelişmiş kullanımını, çıktılarını nasıl yorumlayacağınızı ve çeşitli senaryolarda nasıl kullanabileceğinizi detaylı bir şekilde inceleyeceğiz.

atop Nedir ve Neden Kullanmalıyız?

atop (Advanced System and Process Monitor), Linux sistemlerinde çalışan süreçlerin ve sistem kaynaklarının (CPU, bellek, disk I/O, ağ) anlık ve geçmiş performansını detaylı bir şekilde gösteren güçlü bir araçtır. Geleneksel performans izleme araçları olan top veya htop‘tan farklı olarak, atop sadece anlık verileri değil, aynı zamanda belirli bir zaman aralığında toplanan geçmiş verileri de analiz etme yeteneğine sahiptir. Bu özellik, geçici performans sorunlarını veya kaynak sızıntılarını tespit etmede paha biçilmezdir.

atop‘un temel avantajları şunlardır:

  • Kapsamlı Veri Toplama: Sistem genelindeki (CPU, bellek, disk, ağ) ve süreç bazındaki tüm önemli performans metriklerini tek bir arayüzde sunar.
  • Geçmiş Performans Analizi: Otomatik olarak veya manuel olarak günlük dosyalarına veri kaydeder ve bu günlük dosyalarını daha sonra analiz etme imkanı sunar. Bu sayede, sorunun ne zaman başladığını ve nasıl geliştiğini görebilirsiniz.
  • Detay Seviyesi: Süreçlerin ve hatta iş parçacıklarının (threads) CPU, bellek, disk I/O ve ağ kullanımı gibi çok detaylı bilgilerini gösterir. Bu, spesifik bir sürecin neden yavaşladığını veya kaynak tükettiğini anlamak için hayati öneme sahiptir.
  • Etkileşimli Arayüz: Kullanıcı dostu, etkileşimli bir arayüze sahiptir. Çeşitli tuş kombinasyonlarıyla farklı görünümler arasında geçiş yapabilir, verileri sıralayabilir ve belirli kaynaklara odaklanabilirsiniz.
  • Kaynak Sızıntısı Tespiti: Bellek veya diğer kaynak sızıntılarını, bir sürecin zaman içindeki kaynak kullanımındaki artışı izleyerek tespit etmeye yardımcı olur.
  • Ağ ve Disk I/O Detayları: Ağ arayüzleri ve diskler üzerindeki detaylı I/O istatistiklerini gösterir, bu da I/O tabanlı performans sorunlarını teşhis etmeyi kolaylaştırır.

Kurulum

atop çoğu Linux dağıtımının resmi depolarında bulunur ve kurulumu oldukça basittir. Dağıtımınıza göre aşağıdaki komutları kullanabilirsiniz:

Debian/Ubuntu tabanlı sistemler:

sudo apt update
sudo apt install atop

RHEL/CentOS/Fedora tabanlı sistemler:

sudo yum install atop

veya daha yeni sürümlerde:

sudo dnf install atop

Arch Linux tabanlı sistemler:

sudo pacman -S atop

Kurulumdan sonra, atop servisini başlatmak ve sistem başlangıcında otomatik olarak başlamasını sağlamak isteyebilirsiniz. Bu, atop‘un düzenli aralıklarla sistem performans verilerini günlük dosyalarına kaydetmesini sağlar:

sudo systemctl enable atop
sudo systemctl start atop

Temel Kullanım

atop‘u çalıştırmak için terminale basitçe atop yazmanız yeterlidir:

atop

Bu komut, varsayılan olarak her 1 saniyede bir güncellenen etkileşimli bir arayüz başlatır. Çıktı, iki ana bölümden oluşur: üst kısımda sistem genelindeki istatistikler ve alt kısımda süreç listesi.

Etkileşimli Arayüz ve Kısayollar

atop‘un etkileşimli arayüzünde gezinmek için çeşitli tuş kombinasyonlarını kullanabilirsiniz:

  • g: Genel (varsayılan) görünüm.
  • m: Bellek kullanımına odaklanma (process listesi bellek kullanımına göre sıralanır).
  • d: Disk I/O kullanımına odaklanma.
  • n: Ağ kullanımına odaklanma (eğer netatop çekirdek modülü yüklüyse daha detaylı).
  • u: Kullanıcı bazında CPU ve bellek kullanımı.
  • p: Süreç bazında CPU ve bellek kullanımı (varsayılan).
  • v: Süreç bazında VIRT (sanal bellek) ve RES (gerçek bellek) büyümesi.
  • c: Süreç komut satırlarını gösterme.
  • s: Zaman aralığını değiştirme (varsayılan 1 saniye).
  • t: Bir sonraki kayda atla (günlük dosyalarını okurken).
  • T: Bir önceki kayda atla (günlük dosyalarını okurken).
  • l: Süreç listesindeki limitleri değiştirme (örneğin sadece aktif süreçleri gösterme).
  • q: Çıkış.
  • ? veya h: Yardım ekranını gösterme.

Büyük harf kısayolları (M, D, N vb.) genellikle ilgili sütunları sıralamak için kullanılır.

atop Çıktısını Anlama

atop çıktısı, birçok farklı metriği içerir. Bunları anlamak, sistem performansını doğru bir şekilde yorumlamak için kritik öneme sahiptir.

Header Bölümü (Sistem Geneli İstatistikler)

Bu bölüm, sistemin genel durumunu özetler ve genellikle birden fazla satırdan oluşur:

  • PRC (Process Accounting):
    • sys: Kernel modunda CPU kullanan süreçlerin yüzdesi.
    • user: Kullanıcı modunda CPU kullanan süreçlerin yüzdesi.
    • #proc: Toplam süreç sayısı.
    • #trun: Çalışmaya hazır (runnable) süreç sayısı.
    • #tslpi: Kesintiye uğrayabilir uyku durumundaki süreç sayısı.
    • #tslpu: Kesintiye uğrayamaz uyku durumundaki süreç sayısı.
    • #zombie: Zombie süreç sayısı.
    • #exit: Çıkış yapan süreç sayısı.
  • CPU (CPU Utilization):
    • sys: Kernel tarafından kullanılan CPU yüzdesi.
    • user: Kullanıcı süreçleri tarafından kullanılan CPU yüzdesi.
    • irq: Donanım ve yazılım kesintileri tarafından kullanılan CPU yüzdesi.
    • idle: Boşta olan CPU yüzdesi.
    • wait: I/O bekleyen CPU yüzdesi.
    • steal: Sanal makinelerde diğer VM’ler tarafından çalınan CPU yüzdesi.
    • guest: Sanal makinelerin misafir işletim sistemlerinde harcanan CPU yüzdesi.
  • CPL (CPU Load Averages):
    • avg1, avg5, avg15: Son 1, 5 ve 15 dakikalık ortalama yük.
    • csw: Saniye başına bağlam anahtarlama sayısı (context switches).
    • intr: Saniye başına kesinti sayısı.
  • MEM (Memory Utilization):
    • tot: Toplam fiziksel bellek.
    • free: Boş fiziksel bellek.
    • cache: Dosya sistemi önbelleği.
    • buff: Arabellek önbelleği.
    • slab: Kernel veri yapıları için kullanılan bellek.
    • dirty: Diske yazılması gereken kirli bellek.
    • vmcom: Commit edilmiş sanal bellek (tahmin edilen maksimum).
    • vmlim: Sanal bellek limiti (vmcom’un izin verilen maksimumu).
  • SWP (Swap Utilization):
    • tot: Toplam swap alanı.
    • free: Boş swap alanı.
    • vmcom, vmlim: Swap alanı için de benzer anlamlara gelir.
  • PAG (Paging Activity):
    • swin: Saniye başına swap’tan içeri alınan sayfa sayısı.
    • swout: Saniye başına swap’a dışarı atılan sayfa sayısı.
  • LVM/MDD/DSK (Disk I/O):
    • busy: Diskin meşgul olduğu yüzdesi.
    • read: Saniye başına okunan veri miktarı.
    • write: Saniye başına yazılan veri miktarı.
    • dkrd: Saniye başına okuma işlemi sayısı.
    • dkwr: Saniye başına yazma işlemi sayısı.
  • NET (Network Activity):
    • transport, ip, tcp, udp: İlgili protokoller için paket ve bayt sayıları.
    • raw, socket: Raw socket ve genel socket istatistikleri.
    • lo, eth0, wlan0 vb.: Her ağ arayüzü için alınan/gönderilen paket ve bayt sayıları.

Proses Listesi Bölümü

Bu bölüm, her bir süreç veya iş parçacığı için detaylı istatistikler sunar. Sütunlar, atop‘un hangi görünüme ayarlandığına bağlı olarak değişir. Bazı yaygın sütunlar şunlardır:

  • PID: Süreç ID.
  • TID: İş parçacığı ID (eğer thread görünümü aktifse).
  • PPID: Ana süreç ID.
  • EUSER: Etkin kullanıcı adı.
  • RUSER: Gerçek kullanıcı adı.
  • SYSCPU: Kernel modunda kullanılan CPU yüzdesi.
  • USRCPU: Kullanıcı modunda kullanılan CPU yüzdesi.
  • VGROW: Sanal bellek büyümesi (kilobayt).
  • RGROW: Gerçek bellek büyümesi (kilobayt).
  • RSIZE: Gerçek bellek kullanımı (kilobayt).
  • VSZ: Sanal bellek boyutu (kilobayt).
  • RSS: Gerçek bellek boyutu (kilobayt).
  • EXC: Sürecin exit kodu.
  • S: Süreç durumu (R=çalışıyor, S=uykuda, D=kesintiye uğramaz uyku, Z=zombie, T=durdurulmuş, W=sayfalandırılmış).
  • CPU: Toplam CPU kullanımı yüzdesi.
  • CMD: Komut adı.
  • CKEY: Konteyner ID (eğer konteyner ortamında çalışıyorsa).
  • NTHR: İş parçacığı sayısı.
  • MEM: Sürecin bellek kullanımı yüzdesi.
  • DSK: Sürecin disk I/O kullanımı (okuma/yazma).
  • NET: Sürecin ağ I/O kullanımı (gönderilen/alınan).

Gelişmiş Kullanım ve Özellikler

atop, temel kullanımın ötesinde birçok gelişmiş özelliğe sahiptir.

Günlükleme (Logging)

atop‘un en güçlü özelliklerinden biri, sistem performans verilerini günlük dosyalarına kaydetme yeteneğidir. Bu, özellikle geçici veya geçmişte meydana gelmiş performans sorunlarını analiz etmek için çok kullanışlıdır.

  • Otomatik Günlükleme Servisi: atop kurulumuyla birlikte gelen servis, varsayılan olarak 10 dakikada bir veri toplar ve /var/log/atop dizinine kaydeder. Günlük dosyaları genellikle 28 gün boyunca saklanır. Bu ayarlar /etc/default/atop veya /etc/sysconfig/atop (dağıtıma göre değişir) dosyasında yapılandırılabilir.
  • Manuel Günlükleme: Belirli bir süre boyunca veri toplamak için -w (write) bayrağını kullanabilirsiniz:
    atop -w /var/log/atop/atop_manual.log 5 10

    Bu komut, atop_manual.log dosyasına her 5 saniyede bir, toplamda 10 kez veri yazacaktır.

  • Günlük Dosyalarını Okuma: Kaydedilmiş günlük dosyalarını okumak için -r (read) bayrağını kullanın:
    atop -r /var/log/atop/atop_20231027

    Bu komut, belirtilen günlük dosyasındaki verileri etkileşimli olarak gösterir. t ve T tuşlarıyla zaman çizelgesinde ileri ve geri gidebilirsiniz.

  • Belirli Zaman Aralığına Odaklanma: Günlük dosyasından belirli bir zaman aralığındaki verileri görmek için -b (begin) ve -e (end) bayraklarını kullanabilirsiniz:
    atop -r atop_20231027 -b 10:00 -e 10:30

    Bu, sadece 10:00 ile 10:30 arasındaki verileri gösterir.

Belirli Kaynaklara Odaklanma

atop, farklı kaynakların kullanımını vurgulamak için çeşitli görünüm modları sunar. Bunları komut satırında veya etkileşimli modda tuşlarla etkinleştirebilirsiniz:

  • CPU Kullanımı: -c bayrağı veya etkileşimli modda g tuşu (varsayılan).
  • Bellek Kullanımı: -m bayrağı veya etkileşimli modda M tuşu. Süreç listesi bellek kullanımına göre sıralanır.
  • Disk I/O Kullanımı: -d bayrağı veya etkileşimli modda D tuşu. Süreç listesi disk I/O’ya göre sıralanır.
  • Ağ Kullanımı: -n bayrağı veya etkileşimli modda N tuşu. Ağ istatistikleri gösterilir. (Netatop çekirdek modülü yüklü olmalıdır.)
  • GPU Kullanımı: -G bayrağı, NVIDIA GPU’lar için CUDA ve NVML kütüphaneleri ile entegrasyon sağlayarak GPU kullanımını izler.
  • İplik (Thread) Görünümü: -y bayrağı ile süreçlerin yanı sıra her bir iş parçacığının detaylarını da görebilirsiniz.
  • Kullanıcı Bazında İstatistikler: -u bayrağı ile her kullanıcının toplam CPU, bellek ve disk kullanımını görebilirsiniz.

Sıralama Seçenekleri

Etkileşimli modda, süreç listesini farklı sütunlara göre sıralamak için büyük harf tuşlarını kullanabilirsiniz:

  • C: CPU kullanımı (varsayılan).
  • M: Bellek kullanımı.
  • D: Disk aktivitesi.
  • N: Ağ aktivitesi.
  • P: PID.
  • V: Sanal bellek kullanımı.
  • R: Gerçek bellek kullanımı.
  • S: Süreç durumu.
  • T: İş parçacığı sayısı.

Çıktı Formatları ve Batch Modu

atop, komut dosyaları veya diğer araçlarla entegrasyon için farklı çıktı formatları sunar:

  • CSV Formatı: -P bayrağı ile belirli alanları CSV formatında alabilirsiniz. Örneğin, CPU kullanımını almak için:
    atop -P CPU -o 1

    Bu komut, her saniye CPU istatistiklerini CSV formatında çıktı verir.

  • Batch Modu: -b bayrağı ile atop‘u etkileşimli olmayan, tek seferlik çıktı veren bir modda çalıştırabilirsiniz. Bu, betiklerde kullanım için idealdir.
    atop -b -P CPU,MEM,DSK 5 1

    Bu komut, CPU, bellek ve disk istatistiklerini bir kez, 5 saniye arayla toplar ve çıktı verir.

atop Kullanım Senaryoları

atop, çeşitli performans sorunlarını teşhis etmek ve sistem sağlığını izlemek için kullanılabilir:

  • Performans Sorunlarını Teşhis Etme:
    • Yüksek CPU Kullanımı: atop‘u çalıştırın ve C tuşuna basarak süreçleri CPU kullanımına göre sıralayın. Hangi sürecin CPU’yu yoğun kullandığını hemen görebilirsiniz. Header bölümündeki CPU sys ve CPU user değerleri, sorunun kernel mi yoksa kullanıcı uygulaması kaynaklı mı olduğunu gösterir.
    • Bellek Sızıntıları veya Tıkanıklıkları: M tuşuna basarak bellek kullanımına odaklanın. VGROW ve RGROW sütunları, süreçlerin zaman içinde bellek tüketimindeki artışı gösterir. Eğer bir süreç sürekli bellek büyütüyorsa, bu bir bellek sızıntısına işaret edebilir. MEM free ve SWP free değerleri, sistemin genel bellek durumunu gösterir.
    • Disk I/O Sorunları: D tuşuna basarak disk aktivitesine odaklanın. DSK busy yüzdesi, disklerin ne kadar meşgul olduğunu gösterir. Süreç listesindeki DSK sütunu, hangi sürecin diski en çok kullandığını ortaya çıkarır. Bu, yavaş depolama veya yoğun disk erişimi gerektiren uygulamalar için kritik bir göstergedir.
    • Ağ Tıkanıklıkları: N tuşuna basarak ağ istatistiklerini inceleyin. Hangi ağ arayüzünün (eth0, wlan0 vb.) en çok trafiği işlediğini ve paket kayıpları olup olmadığını görebilirsiniz. Eğer netatop modülü yüklüyse, süreç bazında ağ trafiği de izlenebilir.
  • Anormal Aktiviteyi Tespit Etme: Beklenmedik bir süreç mi yüksek kaynak kullanıyor? atop ile anlık olarak bu tür sapmaları tespit edebilir ve hatta günlük dosyalarını inceleyerek anormal aktivitenin ne zaman başladığını ve ne kadar sürdüğünü belirleyebilirsiniz.
  • Geçmiş Performansı Analiz Etme: Bir kullanıcı bir saat önce sistemin yavaşladığını bildirdiğinde, atop günlük dosyaları kurtarıcınız olabilir. İlgili günlük dosyasını -r bayrağıyla açın ve -b, -e bayraklarıyla veya t, T tuşlarıyla ilgili zaman dilimine gidin.
  • Kapasite Planlaması: Uzun süreli atop günlükleri, sistem kaynaklarının zaman içindeki kullanım eğilimlerini anlamak için kullanılabilir. Bu veriler, gelecekteki donanım yükseltmeleri veya kaynak tahsis kararları için değerli bilgiler sağlar.

atop ve Diğer Araçlar

Linux performans izleme araçları dünyasında atop‘un yeri nedir? Diğer popüler araçlarla karşılaştıralım:

  • top/htop:
    • Fark: top ve htop, anlık süreç ve sistem genelindeki CPU/bellek kullanımını gösteren harika araçlardır. Ancak, geçmiş veri toplama yetenekleri yoktur ve disk/ağ I/O gibi detaylı metrikleri atop kadar kapsamlı sunmazlar. htop daha kullanıcı dostu bir arayüze sahiptir.
    • Ne Zaman Kullanılır: Hızlıca anlık durumu kontrol etmek veya en çok kaynak tüketen süreçleri görmek için idealdir.
  • vmstat:
    • Fark: vmstat, sistem genelindeki bellek, takas (swap), CPU ve I/O istatistiklerini verir ancak süreç bazında detaylı bilgi sağlamaz. Geçmiş veri toplama yeteneği yoktur.
    • Ne Zaman Kullanılır: Sistem genelindeki bellek ve CPU tıkanıklıklarını hızlıca teşhis etmek için.
  • iostat:
    • Fark: iostat, disk I/O istatistiklerine odaklanmıştır. Disklerin meşguliyetini, okuma/yazma hızlarını ve I/O işlemlerinin sayısını gösterir. Süreç bazında bilgi vermez.
    • Ne Zaman Kullanılır: Disk performans sorunlarını derinlemesine incelemek için.
  • sar (System Activity Reporter):
    • Fark: sar, atop gibi geçmiş performans verilerini toplayabilir ve raporlayabilir. Genellikle sistem yöneticileri tarafından uzun vadeli performans analizi için kullanılır. Ancak, atop‘un etkileşimli arayüzü ve anlık detay seviyesi sar‘a göre daha kullanıcı dostu olabilir. sar genellikle çıktıları yorumlamak için daha fazla öğrenme eğrisi gerektirir.
    • Ne Zaman Kullanılır: Uzun vadeli trend analizi ve kapasite planlaması için.

Neden atop Öne Çıkıyor: atop, bu araçların çoğunun en iyi özelliklerini bir araya getirir. Hem anlık hem de geçmiş verileri tek bir etkileşimli arayüzde sunar, sistem genelinden süreç ve hatta iş parçacığı seviyesine kadar detaylı bilgi sağlar. Bu “hepsi bir arada” yaklaşım, atop‘u kapsamlı bir sorun giderme ve performans izleme aracı olarak vazgeçilmez kılar.

Sıkça Sorulan Sorular (SSS)

atop çok fazla kaynak tüketiyor mu?

Hayır, atop oldukça verimli çalışır. Varsayılan olarak 10 dakikada bir veri toplayan günlükleme servisi, sistem üzerinde gözle görülür bir yük oluşturmaz. Etkileşimli modda çalıştırıldığında, topladığı ve gösterdiği veri miktarına kıyasla CPU ve bellek kullanımı düşüktür.

Günlük dosyaları ne kadar yer kaplar? Nasıl yönetilir?

Günlük dosyalarının boyutu, toplama sıklığına ve sistem aktivitesine bağlıdır. Varsayılan olarak, atop günlük dosyalarını 28 gün boyunca saklar ve daha eski dosyaları otomatik olarak siler. Bu ayar, /etc/default/atop (veya /etc/sysconfig/atop) dosyasındaki LOGINTERVAL ve LOGGENERATIONS parametreleri değiştirilerek ayarlanabilir. Ayrıca, logrotate gibi araçlarla da entegre edilebilir.

atop çıktısındaki bazı kısaltmaların anlamı nedir?

Makalenin “atop Çıktısını Anlama” bölümünde detaylıca açıklanmıştır. Genel olarak, atop‘un yardım ekranı (? veya h tuşu) veya man sayfası (man atop) tüm kısaltmaların açıklamalarını içerir.

atop root olmadan çalışır mı?

atop komutunu normal bir kullanıcı olarak çalıştırabilirsiniz, ancak bazı detaylı metrikleri (özellikle kernel seviyesindeki veya diğer kullanıcıların süreçlerine ait olanları) görebilmek için root yetkilerine sahip olmanız önerilir. Günlükleme servisi ise genellikle root yetkileriyle çalışır.

Sonuç

atop, Linux sistemlerinde performans analizi ve sorun giderme için vazgeçilmez bir araçtır. Kapsamlı veri toplama yeteneği, anlık ve geçmiş performans analizi imkanı, detaylı süreç ve sistem istatistikleri sunması, onu diğer birçok performans izleme aracından ayırır. Bir sistem yöneticisi, DevOps mühendisi veya hatta bir geliştirici olarak, atop‘u araç setinize eklemek, sistemlerinizin sağlığını ve performansını anlamak için size önemli bir avantaj sağlayacaktır. Bu rehberdeki bilgileri kullanarak, atop‘un gücünü tam olarak ortaya çıkarabilir ve karşılaştığınız performans sorunlarını daha etkili bir şekilde çözebilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.