Linux Performans İzleme ve Optimizasyon Rehberi

Linux sunucularda performans sorunları kaçınılmazdır. Yavaşlayan sistem, yüksek CPU kullanımı, bellek tükenmesi gibi durumlarla...

Linux
Linux Performans İzleme ve Optimizasyon Rehberi

Sunucu yavaşladığında sorunun kaynağını hızla tespit edebilmek, bir sistem yöneticisinin en temel becerileri arasındadır. CPU doygunluğu mu, bellek baskısı mı, disk I/O tıkanıklığı mı, ağ gecikme mi — her biri farklı araçlarla teşhis edilir.

CPU Kullanımı

# Anlık
top                              # temel izleyici
htop                             # renkli gelişmiş (sudo apt install htop)

# Süreç bazında CPU
ps aux --sort=-%cpu | head -11

# Detaylı CPU istatistikleri
mpstat 1 5      # her saniye, 5 örnek (sysstat paketi)
mpstat -P ALL 1 # her çekirdek ayrı

CPU istatistiklerinde kritik alanlar: us (kullanıcı alanı), sy (çekirdek), wa (I/O bekleme — yüksekse disk sorunu), st (sanallaştırma ortamında çalınan zaman).

Bellek Kullanımı

free -h                          # RAM ve swap durumu
vmstat 1 5                       # bellek, swap, CPU, I/O özeti
cat /proc/meminfo                # ayrıntılı bellek bilgisi

# En çok bellek kullanan süreçler
ps aux --sort=-%mem | head -11

free çıktısındaki "available" sütunu gerçek kullanılabilir belleği gösterir; "used" değeri yanıltıcı olabilir çünkü Linux boş belleği önbellek olarak kullanır.

Disk I/O

iostat 1 5               # disk I/O istatistikleri (sysstat)
iostat -x 1              # genişletilmiş: %util, await, iops
iotop                    # süreç bazında I/O (sudo apt install iotop)

# Disk kullanımı
df -h
du -sh /var/log/         # dizin boyutu
du -h --max-depth=1 / | sort -rh | head -10

%util değeri yüzde 70'i sürekli geçiyorsa disk I/O tıkanıklığı yaşıyorsunuzdur. await ortalama I/O bekleme süresini ms cinsinden gösterir.

Ağ Performansı

iftop                    # arayüz bazında gerçek zamanlı trafik
nethogs                  # süreç bazında bant genişliği
ss -s                    # bağlantı istatistikleri özeti
ss -tuln                 # dinleyen portlar

netstat -i               # arayüz hata istatistikleri

Sistem Geneli İzleme

vmstat 1 10              # sistem özeti (süreçler, bellek, swap, I/O, CPU)
sar -u 1 5               # CPU geçmişi (sysstat)
sar -r 1 5               # bellek geçmişi
sar -d 1 5               # disk I/O geçmişi

Load Average

Load average sistemin son 1, 5 ve 15 dakikadaki ortalama yükünü gösterir:

uptime
cat /proc/loadavg

Değerleri CPU çekirdeği sayısıyla karşılaştırın: 4 çekirdekli sistemde load average 4.0 yüzde 100 kullanım demektir. Sürekli çekirdek sayısının üzerindeyse kaynak yetersiz kalıyor.

Performans Sorunlarını Teşhis Etme

Sorun geldiğinde şu sırayla kontrol edin:

  1. top veya htop ile CPU ve bellek kullanan süreci bulun.
  2. iostat -x 1 ile disk tıkanıklığı var mı kontrol edin.
  3. free -h ile bellek ve swap kullanımına bakın; swap aktif kullanılıyorsa RAM yetersiz.
  4. ss -s ile ağ bağlantı sayısını kontrol edin; TIME_WAIT birikiyorsa soket tükenimi olabilir.
  5. journalctl -p err --since "1 hour ago" ile son hataları görün.

Temel Optimizasyon Adımları

Swap Kullanımını Azaltma

cat /proc/sys/vm/swappiness    # varsayılan genellikle 60
sudo sysctl -w vm.swappiness=10
# Kalıcı:
echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-swappiness.conf

Gereksiz Servisleri Kapatma

systemctl list-units --type=service --state=running
sudo systemctl disable --now cups.service    # yazıcı servisi, sunucuda gereksiz

OOM Killer Log'larını Kontrol Etme

dmesg | grep -i "oom"
journalctl -k | grep -i "out of memory"

OOM killer bir süreci sonlandırdıysa sistemde bellek tükenmesi yaşanıyordur; RAM eklemek veya bellek sızdıran süreci düzeltmek gerekir.

Celil Uyanikoglu

Yazan Celil Uyanikoglu

25 yıldır bilgi işlem piyasasında farklı dallarda uzmanlaşan bir Bilgisayar Mühendisi

Yorum

Henüz yorum yok.

Sohbete katıl. Yorumlar yayınlanmadan önce moderasyondan geçer.

Yorum yap

E-posta adresin yayınlanmaz. Yorumlar moderasyondan sonra yayınlanır.

Sırada

İlgili notlar