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ış.?veyah: 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,wlan0vb.: 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:
atopkurulumuyla birlikte gelen servis, varsayılan olarak 10 dakikada bir veri toplar ve/var/log/atopdizinine kaydeder. Günlük dosyaları genellikle 28 gün boyunca saklanır. Bu ayarlar/etc/default/atopveya/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 10Bu komut,
atop_manual.logdosyası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_20231027Bu komut, belirtilen günlük dosyasındaki verileri etkileşimli olarak gösterir.
tveTtuş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:30Bu, 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ı:
-cbayrağı veya etkileşimli moddagtuşu (varsayılan). - Bellek Kullanımı:
-mbayrağı veya etkileşimli moddaMtuşu. Süreç listesi bellek kullanımına göre sıralanır. - Disk I/O Kullanımı:
-dbayrağı veya etkileşimli moddaDtuşu. Süreç listesi disk I/O’ya göre sıralanır. - Ağ Kullanımı:
-nbayrağı veya etkileşimli moddaNtuşu. Ağ istatistikleri gösterilir. (Netatop çekirdek modülü yüklü olmalıdır.) - GPU Kullanımı:
-Gbayrağı, 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ü:
-ybayrağı ile süreçlerin yanı sıra her bir iş parçacığının detaylarını da görebilirsiniz. - Kullanıcı Bazında İstatistikler:
-ubayrağı 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ı:
-Pbayrağı ile belirli alanları CSV formatında alabilirsiniz. Örneğin, CPU kullanımını almak için:atop -P CPU -o 1Bu komut, her saniye CPU istatistiklerini CSV formatında çıktı verir.
- Batch Modu:
-bbayrağı ileatop‘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 1Bu 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 veCtuş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ündekiCPU sysveCPU userdeğerleri, sorunun kernel mi yoksa kullanıcı uygulaması kaynaklı mı olduğunu gösterir. - Bellek Sızıntıları veya Tıkanıklıkları:
Mtuşuna basarak bellek kullanımına odaklanın.VGROWveRGROWsü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 freeveSWP freedeğerleri, sistemin genel bellek durumunu gösterir. - Disk I/O Sorunları:
Dtuşuna basarak disk aktivitesine odaklanın.DSK busyyüzdesi, disklerin ne kadar meşgul olduğunu gösterir. Süreç listesindekiDSKsü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ı:
Ntuşuna basarak ağ istatistiklerini inceleyin. Hangi ağ arayüzünün (eth0,wlan0vb.) en çok trafiği işlediğini ve paket kayıpları olup olmadığını görebilirsiniz. Eğernetatopmodülü yüklüyse, süreç bazında ağ trafiği de izlenebilir.
- Yüksek CPU Kullanımı:
- Anormal Aktiviteyi Tespit Etme: Beklenmedik bir süreç mi yüksek kaynak kullanıyor?
atopile 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,
atopgünlük dosyaları kurtarıcınız olabilir. İlgili günlük dosyasını-rbayrağıyla açın ve-b,-ebayraklarıyla veyat,Ttuşlarıyla ilgili zaman dilimine gidin. - Kapasite Planlaması: Uzun süreli
atopgü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:
topvehtop, 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ı metrikleriatopkadar kapsamlı sunmazlar.htopdaha 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.
- Fark:
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.
- Fark:
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.
- Fark:
sar(System Activity Reporter):- Fark:
sar,atopgibi 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 seviyesisar‘a göre daha kullanıcı dostu olabilir.sargenellikle çı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.
- Fark:
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.
