Sunucu Kaynaklarını İzlemek Neden Kritik?
Her sunucunun, ister küçük bir VPS ister büyük bir veri merkezi olsun, sınırlı kaynakları vardır. CPU, RAM veya disk kullanımı belirli bir seviyeyi aştığında uygulamaların performansı düşer, web sitesinin yanıt süresi yavaşlar ve en kötü durumda sunucu erişilemez hale gelir. Sunucu kaynaklarını izlemek, kullanıcılar sorunu fark etmeden önce sorunu tespit edip çözmenize yardımcı olur. Bu makalede, Linux'un dört temel aracını, yani top, htop, df ve iostat'ı inceleyeceğiz ve çıktılarındaki sayıları nasıl yorumlayacağımızı öğreneceğiz.
top Aracı: Kaynak Kullanımına Genel ve Anlık Bakış
top komutu, sunucu kaynaklarını izlemek için en eski ve en erişilebilir araçtır. Bu araç, neredeyse tüm Linux dağıtımlarında varsayılan olarak kuruludur ve CPU, RAM ve çalışan işlemlerin canlı bir görünümünü sunar.
top Çıktısını Okuma
Terminalde top komutunu çalıştırdığınızda iki ana bölüm görürsünüz: üstte sistem özeti ve altta işlem tablosu. İlk satır, çalışma süresini, kullanıcı sayısını ve load average değerini içerir. Load average değeri üç sayı gösterir: son 1, 5 ve 15 dakikanın ortalama yükü. Bu sayılar CPU çekirdeği sayısını aşarsa, sistem kapasitesinin üzerinde çalışıyor demektir.
İkinci ve üçüncü satırlar sırasıyla işlem durumunu ve CPU kullanımını gösterir. CPU satırında şu değerleri görürsünüz:
us: Kullanıcı işlemleri tarafından CPU kullanım yüzdesi (User)sy: Sistem çekirdeği tarafından CPU kullanım yüzdesi (System)id: CPU boşta kalma yüzdesi (Idle)wa: Disk I/O bekleme yüzdesi (I/O Wait)
wa değeri yüksekse (örneğin %20'nin üzerinde), sunucu diski yavaş demektir ve CPU giriş/çıkış işlemlerini bekler. Bu, sunucu kaynaklarını izlerken dikkat etmeniz gereken en önemli işaretlerden biridir.
top'ta Kullanışlı Komutlar
top çalışırken aşağıdaki tuşları kullanabilirsiniz:
P: CPU kullanımına göre sıralamaM: RAM kullanımına göre sıralamak: PID girerek bir işlemi sonlandırmaq: Programdan çıkış
Tek seferlik ve etkileşimsiz çıktı için aşağıdaki komutu kullanın:
top -b -n 1 | head -n 20
Bu komut, etkileşimli mod olmadan çıktının bir örneğini yazdırır ve otomatik betikler için çok kullanışlıdır.
Yaygın Hata: Birçok kullanıcı yalnızca CPU yüzdesine bakar ve wa değerini göz ardı eder. wa yüksekse ancak CPU boş görünüyorsa, sorun işlemcide değil; diskte veya ağdadır.
htop Aracı: Daha İyi Arayüzle Sunucu Kaynaklarını İzleme
htop, top komutunun geliştirilmiş bir sürümüdür; renkli arayüz, görsel ilerleme çubukları ve fare ile gezinme imkanı sunar. Her sistemde varsayılan olarak kurulu olmasa da kurulumu basittir:
# Debian/Ubuntu
sudo apt install htop
# RHEL/CentOS
sudo yum install htop
htop'un top'a Göre Avantajları
htop'ta ekranın üst kısmındaki renkli çubuklar her CPU çekirdeğinin kullanımını ayrı ayrı gösterir. Renklerin özel anlamları vardır: kırmızı kullanıcı işlemleri, yeşil sistem işlemleri ve mavi düşük öncelikli işlemler içindir. Bu görsel ayrım, sistemin hangi bölümünün en fazla yük altında olduğunu daha hızlı anlamanıza yardımcı olur.
Ayrıca ekranın alt kısmında bellek (RAM) ve Swap belleği çubuklarını görürsünüz. Önemli bir nokta, Linux'ta uygulamalar tarafından kullanılmayan belleğin disk için önbellek olarak kullanılmasıdır. Bu nedenle used değeri yüksekse ancak cache de yüksekse endişelenecek bir durum yoktur; sistem belleği verimli kullanıyor demektir.
İşlem Ağacıyla Çalışma
htop'un kullanışlı özelliklerinden biri işlemlerin ağaç görünümüdür. F5 tuşuna basarak hangi üst işlemin alt işlemlerini çalıştırdığını görebilirsiniz. Bu özellik, kaynak kullanım sorunlarının kökenini bulmak için çok faydalıdır. Örneğin, bir Apache web sunucusu yüzlerce alt işlem oluşturduysa, ağaç görünümünde hepsinin tek bir ana işlemden kaynaklandığı açıkça görülür.
df Aracı: Disk Alanını İzleme
Disk alanı, genellikle eksikliğini geç fark ettiğimiz kaynaklardan biridir. df (Disk Free) komutu, her bölümün kullanılan ve mevcut alanı hakkında bilgi gösterir.
df Temel Komutları
df komutunun en basit kullanımı şu şekildedir:
df -h
-h (human-readable) seçeneği boyutları anlaşılır biçimde (GB, MB) gösterir. Çıktı şu sütunları içerir:
Filesystem: Bölüm veya cihaz adıSize: Bölümün toplam boyutuUsed: Kullanılan alanAvail: Mevcut alanUse%: Kullanım yüzdesiMounted on: Bağlama noktası (örneğin/veya/home)
Sunucu kaynaklarını periyodik olarak izlemek için cron kullanabilir ve kullanım yüzdesi belirli bir seviyeyi (örneğin %85) aşarsa e-posta uyarısı gönderebilirsiniz:
df -h | awk 'NR>1 {gsub(/%/,"",$5); if ($5 > 85) print $0}'
Büyük Dosyaları Belirleme
Disk dolduğunda, alanı neyin kapladığını bilmeniz gerekir. du (Disk Usage) komutu burada yardımcı olur:
sudo du -sh /var/log/*
sudo du -h --max-depth=1 /home | sort -hr | head -n 10
İlk komut /var/log klasöründeki her dosyanın boyutunu gösterir, ikinci komut ise /home içindeki en büyük klasörleri sıralar. Günlük dosyaları genellikle diskin dolmasının en büyük nedenidir, bu nedenle düzenli olarak kontrol edilmesi sunucu kaynaklarını izlemenin önemli bir parçasıdır.
Yaygın Hata: Silinmiş ancak işlemler tarafından hâlâ açık (open) olan dosyalar disk alanı kaplar. df az alan gösteriyor ancak du büyük bir dosya bulamıyorsa, bu sorunu kontrol edin:
lsof +L1 | head -n 20
Bu komut, işlemler tarafından hâlâ kullanılan silinmiş dosyaları gösterir.
iostat Aracı: Disk Performansının Derinlemesine Analizi
iostat, sysstat paketinin bir parçasıdır ve disk I/O performansı hakkında ayrıntılı bilgi sağlar. Bu araç, diskin yavaş olduğu veya darboğazdan şüphelendiğiniz durumlarda sunucu kaynaklarını izlemek için gereklidir.
Kurulum ve Temel Kullanım
# Debian/Ubuntu
sudo apt install sysstat
# RHEL/CentOS
sudo yum install sysstat
En basit kullanım:
iostat -x 2 3
Bu komut, -x (Extended) seçeneğiyle her 2 saniyede bir, toplam 3 kez çıktı gösterir. Çıktıdaki önemli sütunlar şunlardır:
%util: Diskin işlem yapmakla meşgul olduğu zaman yüzdesi. Bu değer %100'e yakınsa disk tamamen doymuş demektir.await: Diskin isteklere ortalama yanıt süresi (milisaniye). HDD diskler için 20 milisaniyenin üzerindeki değerler ve SSD için 5 milisaniyenin üzerindeki değerler sorun işaretidir.r/svew/s: Saniyedeki okuma ve yazma işlem sayısı.rkB/svewkB/s: Saniyede okunan ve yazılan veri hacmi.
iostat Sayılarını Yorumlama
Şu çıktıyı gördüğünüzü varsayalım:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s await %util
sda 0.00 12.00 0.00 45.00 0.00 560.00 18.50 85.00
Bu çıktı, sda diskinin zamanın %85'inde meşgul olduğunu ve ortalama bekleme süresinin 18.5 milisaniye olduğunu gösterir. Bu değerler normal bir HDD için uyarı sınırındadır. %util %100'e ulaşırsa, disk artık daha fazla isteğe yanıt veremiyor demektir ve donanım yükseltmeyi veya uygulamaları optimize etmeyi düşünmelisiniz.
sar ile Sürekli İzleme
sysstat paketi, geçmiş verileri toplayabilen sar aracını da içerir. Otomatik veri toplamayı etkinleştirmek için:
sudo systemctl enable sysstat
sudo systemctl start sysstat
Ardından dünün raporunu görebilirsiniz:
sar -d -f /var/log/sysstat/sa$(date +%d -d yesterday)
Bu geçmiş rapor, disk kullanım eğilimini zaman içinde analiz etmenize ve yoğun kullanım modellerini belirlemenize yardımcı olur.
Özet: Sunucu Kaynaklarını İzlemek için Kapsamlı Bir Strateji
Hiçbir araç tek başına sunucu kaynaklarını izlemenin tüm ihtiyaçlarını karşılayamaz. En iyi yaklaşım, bu dört aracı akıllıca birleştirmektir:
- CPU ve RAM'in anlık durumunu hızlıca görmek için
htopkullanın. - Otomatik betiklerde ve daha hafif bir araca ihtiyaç duyduğunuzda
topkullanın. dfile disk alanını günlük kontrol edin ve otomatik uyarı ayarlayın.- Disk performansını derinlemesine analiz etmek ve darboğazları belirlemek için
iostatkullanın.
Unutmayın ki sunucu kaynaklarını izlemek tek seferlik bir iş değil, sürekli bir süreçtir. Sayıları kaydedin, eğilimleri takip edin ve sorun kritik hale gelmeden önce harekete geçin. Ölçeklenebilir ve güvenilir bir altyapıya ihtiyacınız varsa, ServerNet uygulamalarınızı güvenle çalıştırabileceğiniz geniş bir barındırma hizmeti yelpazesi sunar. Ancak hizmet seçiminden daha önemlisi, kaynaklarınızı nasıl yöneteceğinizi öğrenmektir — ve bu rehber bu yolda ilk adımınızdı.