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.
İç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
# 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
# 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
# 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
| Metrik | Sağ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ı
# 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ı
# 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
| Metrik | NVMe SSD | SATA SSD | HDD |
|---|---|---|---|
| Okuma | 3000+ MB/s | 500+ MB/s | 100-200 MB/s |
| Yazma | 2000+ MB/s | 400+ MB/s | 80-150 MB/s |
| IOPS | 500K+ | 50K+ | 100-200 |
4. Swap Kullanımı Analizi
Swap kullanımı yüksekse, RAM yetersizdir ve sunucu disk üzerinden bellek yönetimi yapar.
# 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)
# 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ü
# 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
# Ç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ü
# 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
# 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.
İlgili Makaleler
SSH Bağlantı Sorunu: Sunucuya Bağlanamıyorum
SSH bağlantı sorunlarını çözme rehberi: Path.net firewall kuralları, Default Block, SSH portu için filtre kuralı oluşturma ve sorun giderme adımları.
RDP Bağlantı Sorunu: Windows Sunucuya Erişilemiyor
RDP bağlantı sorunlarını çözme rehberi: Path.net firewall kuralları, Default Block, RDP portu için filtre kuralı oluşturma ve sorun giderme adımları.
MTR Testi Nasıl Yapılır ve Destek Ekibine Gönderilir
WinMTR ve Linux MTR ile ağ testi yapma, ICMP filtre kuralı oluşturma ve sonuçları destek ekibine gönderme rehberi. Paket kaybı ve gecikme analizi.