Ana içeriğe geç
Kategoriye Dön

Sunucu Yavaş Çalışıyor: CPU, RAM ve Disk Kontrol Listesi

Sunucu performans sorunlarını tespit etme ve çözme rehberi: CPU, RAM, disk, swap, process analizi ve ağ testi kontrol listesi. Linux sunucu yavaşlama nedenleri.

Okuma süresi: 10 dk Sorun Giderme
sunucu yavaşperformans sorunucpu kullanımıram doldudisk doluswapsorun giderme

İçindekiler

Giriş

Sunucunuz yavaş çalışıyorsa, sorunun kaynağını belirlemek için sistematik bir kontrol listesi takip etmeniz gerekir. Bu rehber, en yaygın performans sorunlarını ve çözümlerini adım adım açıklar.

Bu rehber Linux (Ubuntu, Debian, CentOS, Rocky Linux) sunucular için hazırlanmıştır. Windows Server için benzer kontroller farklı araçlarla yapılır.

1. CPU Kullanımı Kontrolü

Yüksek CPU kullanımı sunucunun yavaşlamasının en yaygın nedenidir.

Anlık CPU Durumu

hljs bash
# Genel CPU kullanımı
top -bn1 | head -5

# Detaylı ve interaktif görünüm
htop

# CPU çekirdek bazlı kullanım
mpstat -P ALL 1 5

En Çok CPU Kullanan Süreçler

hljs bash
# CPU kullanımına göre sıralı süreç listesi
ps aux --sort=-%cpu | head -20

# Gerçek zamanlı izleme
top -o %CPU

CPU kullanımı sürekli %90+ ise, yoğun süreçleri tespit edip optimize etmeniz veya sunucu kaynaklarını artırmanız gerekebilir.

Çözüm Önerileri

  • Gereksiz süreçleri durdurun: kill -9 PID
  • Uygulama yapılandırmasını optimize edin (worker sayısı, thread limiti)
  • CPU kaynaklarını artırmayı düşünün (VDS yükseltme)

2. RAM Kullanımı Kontrolü

Yetersiz RAM, sunucunun swap kullanmasına ve dramatik yavaşlamaya neden olur.

RAM Durumu

hljs bash
# Genel bellek durumu
free -h

# Detaylı bellek bilgisi
cat /proc/meminfo | head -10

# Süreç bazlı RAM kullanımı
ps aux --sort=-%mem | head -20

Örnek Çıktı Yorumlama

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       6.2Gi       0.3Gi       0.1Gi       1.3Gi       1.2Gi
Swap:         2.0Gi       1.5Gi       0.5Gi
MetrikSağlıklıUyarıKritik
RAM Kullanımı< %70%70-90> %90
Swap Kullanımı0< %25> %50
Available> %20%10-20< %10

Swap kullanımı yüksekse (> %50), RAM yetersizdir. Swap, disk üzerinde çalıştığı için RAM'e kıyasla çok yavaştır.

3. Disk Kullanımı ve I/O Kontrolü

Disk Alanı

hljs bash
# Disk kullanımı özeti
df -h

# En büyük dizinleri bul
du -sh /* 2>/dev/null | sort -rh | head -10

# En büyük dosyaları bul
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -10

Disk kullanımı %90'ı aştığında performans sorunları başlayabilir. %95+ kritik seviyedir — acil alan açılmalıdır.

Disk I/O Performansı

hljs bash
# Anlık disk I/O
iostat -x 1 5

# Süreç bazlı I/O kullanımı
iotop -o

# Disk okuma/yazma hızı testi
dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct
rm /tmp/testfile
MetrikNVMe SSDSATA SSDHDD
Okuma3000+ MB/s500+ MB/s100-200 MB/s
Yazma2000+ MB/s400+ MB/s80-150 MB/s
IOPS500K+50K+100-200

4. Swap Kullanımı Analizi

Swap kullanımı yüksekse, RAM yetersizdir ve sunucu disk üzerinden bellek yönetimi yapar.

hljs bash
# Swap durumu
free -h | grep Swap
swapon --show

# Hangi süreçler swap kullanıyor?
for file in /proc/*/status; do
  awk '/VmSwap|Name/{printf $2 " " $3}END{print ""}' $file 2>/dev/null
done | sort -k2 -rn | head -10

Swap Temizleme (Geçici Çözüm)

hljs bash
# Yeterli boş RAM varsa swap'ı temizle
sudo swapoff -a && sudo swapon -a

Swap temizleme geçici bir çözümdür. Kalıcı çözüm için RAM miktarını artırın veya bellek tüketen uygulamaları optimize edin.

5. Ağ Performansı Kontrolü

hljs bash
# Ağ arayüzü istatistikleri
ifconfig eth0

# Bağlantı sayıları
ss -s

# Aktif bağlantılar (en çok bağlantı yapan IP'ler)
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10

# Bant genişliği kullanımı (nload gerekli)
nload eth0

# Hız testi
wget -O /dev/null http://speedtest.tele2.net/10MB.zip 2>&1 | tail -2

Çok sayıda bağlantı (10.000+) sunucu kaynaklarını tüketebilir. DDoS saldırısı altında olabilirsiniz — Path Panel'den saldırı geçmişini kontrol edin.

6. Süreç Analizi

hljs bash
# Çalışan süreç sayısı
ps aux | wc -l

# Zombie süreçler
ps aux | awk '{if ($8 == "Z") print}'

# En uzun süredir çalışan süreçler
ps -eo pid,etime,comm --sort=-etime | head -20

# Belirli bir uygulamanın kaynak kullanımı
ps aux | grep -i mysql
ps aux | grep -i java
ps aux | grep -i node

7. Sistem Logları Kontrolü

hljs bash
# Son sistem hataları
dmesg | tail -50

# OOM (Out of Memory) killer logları
dmesg | grep -i "oom\|killed process"

# Sistem logları
journalctl -p err --since "1 hour ago"

# Disk hataları
dmesg | grep -i "error\|fail\|i/o"

OOM killer logları görüyorsanız, RAM yetersizdir ve sistem bellek açmak için süreçleri zorla sonlandırıyor demektir.

Hızlı Kontrol Listesi

hljs bash
# Tek komutla genel durum özeti
echo "=== CPU ==="; top -bn1 | head -5; echo "\n=== RAM ==="; free -h; echo "\n=== DISK ==="; df -h /; echo "\n=== LOAD ==="; uptime; echo "\n=== TOP PROCESSES ==="; ps aux --sort=-%cpu | head -5

Ne Zaman Destek Ekibine Başvurmalıyım?

  • Yukarıdaki kontrollerde belirgin bir sorun bulamadıysanız
  • Donanım seviyesinde bir sorun olduğunu düşünüyorsanız
  • Ağ performansı düşükse ve DDoS saldırısından şüpheleniyorsanız
  • OOM killer sürekli tetikleniyorsa

Destek talebi oluştururken yukarıdaki komutların çıktılarını eklemeniz, sorunun daha hızlı çözülmesini sağlar.