Sunucun yavaşladığında ilk bakman gereken yer CPU ve RAM kullanımıdır. Hangi process'in kaynakları tükettiğini bilmeden doğru müdahaleyi yapamazsın. Bu rehberde Linux sunucuda CPU ve RAM kullanımını izlemenin en etkili yollarını göstereceğiz.
1. top — Anlık Sistem İzleme
# top başlat
top
# Belirli kullanıcının process'leri
top -u www-data
# Batch modda çıktı al
top -bn1 | head -20
Top ekranında önemli alanlar:
M— RAM'e göre sıralaP— CPU'ya göre sıralak— Process sonlandır (PID sor)1— CPU çekirdeklerini ayrı gösterq— Çıkış
2. htop — Gelişmiş İzleme
# Kur
sudo apt install htop
# Çalıştır
htop
# Ağaç görünümü
htop -t
htop, top'un daha görsel ve kullanıcı dostu halidir. Renk kodlu CPU/RAM çubukları, fare desteği ve interaktif process yönetimi sunar.
3. free — RAM Kullanımı
# Okunabilir formatta
free -h
# Detaylı
free -m
# Sürekli izleme (2 saniyede bir)
watch -n 2 free -h
Örnek çıktı:
total used free shared buff/cache available
Mem: 7.8Gi 3.2Gi 512Mi 128Mi 4.1Gi 4.2Gi
Swap: 2.0Gi 50Mi 1.9Gi
buff/cache alanı gerektiğinde otomatik serbest bırakılır. Gerçek kullanılabilir RAM'i available sütununda gör.
4. vmstat — Sanal Bellek İstatistikleri
# Anlık durum
vmstat
# Her 2 saniyede 10 ölçüm
vmstat 2 10
# Detaylı çıktı
vmstat -s
5. sar — Tarihsel Performans Verileri
# sysstat kur
sudo apt install sysstat
# sysstat'ı aktifleştir
sudo nano /etc/default/sysstat
# ENABLED="true" yap
sudo systemctl enable sysstat
sudo systemctl restart sysstat
# CPU geçmişi
sar -u 1 5
# RAM geçmişi
sar -r 1 5
# Belirli bir günün verileri
sar -u -f /var/log/sysstat/sa15
6. Process Bazlı Analiz
# En çok CPU kullanan 10 process
ps aux --sort=-%cpu | head -10
# En çok RAM kullanan 10 process
ps aux --sort=-%mem | head -10
# Belirli process'in kaynak kullanımı
pidstat -p $(pgrep nginx) 1
# Process sayısı
ps aux | wc -l
💡 Yeterli CPU ve RAM ile Performans Kaybı Yaşama
Sunucun sürekli yüksek CPU/RAM kullanıyorsa, kaynak yetersizliği söz konusu olabilir. HazalHost VDS sunucularda ihtiyacına göre CPU ve RAM seçebilir, gerektiğinde kolayca yükseltebilirsin.
7. Otomatik Alarm Sistemi
#!/bin/bash
# /usr/local/bin/resource-alert.sh
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -f1)
MEM=$(free | awk '/Mem/ {printf "%.0f", $3/$2*100}')
if [ "$CPU" -gt 90 ]; then
echo "CPU Kritik: %$CPU" | mail -s "CPU Uyarısı" admin@example.com
fi
if [ "$MEM" -gt 90 ]; then
echo "RAM Kritik: %$MEM" | mail -s "RAM Uyarısı" admin@example.com
fi
# Her 5 dakikada çalıştır
crontab -e
# */5 * * * * /usr/local/bin/resource-alert.sh
Kaynak Optimizasyon İpuçları
- Gereksiz servisleri kapat:
sudo systemctl disable servis-adi - Swap ekle: RAM yetersizse geçici çözüm olarak swap alanı oluştur
- PHP-FPM ayarla: Worker sayısını RAM'e göre optimize et
- MySQL cache: innodb_buffer_pool_size'ı RAM'in %70'ine ayarla
- OOM Killer: Kritik servisleri OOM killer'dan koru
🚀 Kaynak Sıkıntısı Çekmeden Çalış
CPU ve RAM yetersizliği yaşamak istemiyorsan, HazalHost'un performans VDS sunucularıyla projelerini sorunsuz çalıştır.
Sonuç
Linux sunucuda CPU ve RAM izleme, performans sorunlarını tespit etmenin ilk adımıdır. htop ile anlık izleme, sar ile tarihsel analiz ve otomatik alarm scriptleri ile sunucunun sağlığını her zaman kontrol altında tutabilirsin.
Sık Sorulan Sorular (FAQ)
CPU %100'e ulaşınca sunucu çöker mi?
Çökmez ama çok yavaşlar. Tüm işlemler kuyrukta beklemeye başlar. Web siteleri timeout verir, SSH bağlantısı bile zorlaşır. Sorunun kaynağını bulup çözmek gerekir.
free komutunda RAM'im hep dolu görünüyor, normal mi?
Evet, normaldir. Linux boş RAM'i disk cache olarak kullanır. Gerçek kullanılabilir RAM'i "available" sütununda görebilirsin. Cache gerektiğinde otomatik serbest bırakılır.
Sunucuma ne kadar RAM lazım?
Kullanım amacına bağlıdır: basit web sitesi 1-2GB, WordPress 2-4GB, e-ticaret 4-8GB, veritabanı sunucusu 8-16GB+ önerilir.