Sunucu Neden Aniden Yavaşlar? Gece Yarıları Yaşadığım Panik Anları

Gece 2’de telefonum çaldı. “Site açılmıyor” diyordu müşterim. Hemen kontrol ettim — sunucu cevap veriyordu ama her sayfa 15-20 saniyede yükleniyordu. SSH ile girdim, baktım ki CPU %98, RAM %95. Ne olmuştu? Bir bot saldırısı mı? Bellek sızıntısı mı? Yanlış bir cron job mı? O gece 4’e kadar sorunu araştırdım ve sonunda buldum. Bu yazıda, sunucunun aniden yavaşlamasının en yaygın nedenlerini ve nasıl teşhis edilip çözüleceğini anlatıyorum.
Konu İçeriği
Sunucu Yavaşlamasının 6 Ana Nedeni
Tecrübelerime göre sunucu yavaşlamasının arkasında şu 6 şeyden biri yatar:
- RAM dolmuş veya swap kullanılıyor
- CPU aşırı yüklenmiş
- Disk I/O darboğazı
- Ağ sorunu veya DDoS
- Veritabanı sorguları takılmış
- Bellek sızıntısı (memory leak)
DigitalOcean’ın 2026 sunucu performans raporuna göre, sunucu yavaşlamalarının %40’ı RAM tükenmesi, %25’i disk I/O, %20’si CPU aşırı yükü ve %15’i ağ sorunlarından kaynaklanıyor (DigitalOcean, “Server Performance Report”, 2026).

Teşhis Koymanın 5 Adımı
Sunucunuz yavaşladığında panik yapmayın ve sırayla şu komutları çalıştırın:
Adım 1: CPU Kullanımını Kontrol Edin
top -o %CPU
Hangi süreç CPU’yu yiyor? Ben o gece top komutunda “mysqld” sürecinin %95 CPU kullandığını gördüm. Sorun veritabanıydı.
Adım 2: RAM Durumunu Kontrol Edin
free -h
Used ve available değerlerine bakın. Eğer available değeri çok düşükse ve swap kullanımı yüksekse, RAM sorununuz var demektir. Benim sunucumda RAM %95 doluydu ve swap aktifti — bu da diske yazma/okuma yapıldığı için ekstra yavaşlık demek.
Adım 3: Disk I/O Kontrolü
iostat -x 1 5
Eğer %util sürekli %90’ın üzerindeyse, disk darboğazı yaşıyorsunuz demektir. Bu özellikle HDD kullanan sunucularda yaygın. SSD’lerde daha az görülür ama yine de mümkün.
Adım 4: Disk Doluluk Oranı
df -h
Disk %95’in üzerinde dolarsa, sistem performansı ciddi düşer. Özellikle veritabanları geçici dosya yazamadığı için kilitlenebilir. Ben bir kez log dosyalarının 50 GB yer kapladığını gördüm — disk %99 dolmuştu.
Adım 5: Ağ Trafiğini Kontrol Edin
iftop
Anormal bir trafik akışı var mı? Bir IP’den çok fazla istek geliyorsa DDoS olabilir. Ben iftop ile o gece bir IP’den saniyede 50 MB trafik geldiğini gördüm — bu normal değildi.
Yaşadığım 3 Vaka ve Çözümleri
Vaka 1: MySQL Çökmesi (O Geceki Olay)
Belirti: Her sayfa 15-20 saniyede yükleniyor, CPU %98 mysqld
Neden: WordPress’te bir eklenti, her sayfa yüklemesinde 500+ SQL sorgusu çalıştırıyordu. Sorguların bir kısmı indexesiz tablolardaydı ve full table scan yapıyordu.
Çözüm: Sorunlu eklentiyi devre dışı bıraktım, tablolara index ekledim. Sayfa yüklemesi 2 saniyeye düştü.
Vaka 2: Log Dosyaları Diski Doldurmuş
Belirti: Site bazen açılıyor bazen 500 hatası veriyor, PHP dosya yazamıyor
Neden: Nginx access log dosyası 45 GB olmuş, disk %99 dolu
Çözüm: Logrotate kurulumunu kontrol ettim — çalışmıyormuş. Düzelttim ve log retention policy ekledim. Artık 7 günden eski loglar otomatik siliniyor.
Vaka 3: PHP-FPM Bellek Sızıntısı
Belirti: Zamanla site yavaşlıyor, restart sonrası hızlanıyor ama tekrar yavaşlıyor
Neden: Bir PHP eklentisi bellek sızıntısı yapıyordu. Her istekte küçük miktarda RAM sızdırıyor, zamanla birikerek RAM tüketiyordu.
Çözüm: PHP-FPM process’lerini belirli aralıklarla yeniden başlatmak için pm.max_requests = 500 ayarını ekledim. Her process 500 istekten sonra otomatik yenileniyor.

Sunucu Yavaşlamasını Önlemek — Proaktif Adımlar
Reaktif çözümlerden proaktif önlemlere geçelim:
1. İzleme kurun. Ben Prometheus + Grafana kullanıyorum. CPU, RAM, disk ve ağ metriklerini gerçek zamanlı izliyorum. %80 üstüne çıktığında Telegram’dan bildirim geliyor.
2. Otomatik temizlik. Cron job ile haftalık temizlik yapıyorum:
# Eski logları sil 0 3 * * 0 find /var/log -name "*.log" -mtime +7 -delete # Geçici dosyaları temizle 0 4 * * 0 find /tmp -type f -mtime +3 -delete
3. Swap alanı oluşturun. RAM bittiğinde swap, sistemi kilitlenmekten kurtarır. Ben 2 GB swap kullanıyorum.
4. PHP opcache kurun. PHP dosyalarını bytecode olarak önbelleğe alıyor ve CPU kullanımını %30-50 düşürüyor.
5. Veritabanı optimizasyonu. MySQL slow query log’u açın ve yavaş sorguları tespit edin. Ben her hafta slow query analizi yapıyorum.
En Kritik 5 Komut — Hızlı Teşhis İçin
Bunları bir yere not alın, ihtiyacınız olduğunda hemen kullanın:
| Komut | Ne Gösterir |
|---|---|
htop |
Interaktif CPU/RAM görünümü |
df -h |
Disk doluluk oranı |
free -h |
RAM kullanımı ve swap durumu |
iotop |
Hangi süreç disk I/O yapıyor |
netstat -tunlp |
Aktif ağ bağlantıları ve portlar |
Bu 5 komut ile 2 dakikada sorunun kaynağını tespit edebilirsiniz. Ben o gece bu komutlarla sorunu buldum ve çözdüm.
Sıkça Sorulan Sorular
Sunucu yavaşladığında ilk ne yapmalıyım?
SSH ile giriş yapın ve htop çalıştırın. Hangi süreç sistemi yoruyor hemen görürsünüz. Büyük ihtimalle tek bir süreç (MySQL, PHP, Nginx) sorumludur.
RAM yetmiyorsa ne yapmalıyım?
Önce gereksiz süreçleri kapatın. Sonra swap ekleyin. Kalıcı çözüm için RAM yükseltme (VPS plan değişikliği) gerekebilir. Benim sunucum 4 GB’dan 8 GB’a çıkarınca RAM sorunu tamamen bitti.
DDoS olup olmadığını nasıl anlarım?
netstat -an | grep :80 | wc -l komutunu çalıştırın. 1000’den fazla aktif bağlantı varsa ve tek bir IP’den geliyorsa DDoS olabilir. Cloudflare Under Attack Mode’u açarak hızlıca engelleyebilirsiniz.
Veritabanı yavaşsa ne yapmalıyım?
MySQL slow query log’unu açın (slow_query_log = 1). Yavaş sorguları tespit edin, gerekli indexleri ekleyin. Ben bir kez 3 dakika süren bir sorguyu index ekleyerek 0.1 saniyeye düşürdüm.
Sunucu izleme için en iyi ücretsiz araç ne?
Netdata en kolayı — tek komutla kuruyor ve web tabanlı güzel bir dashboard sunuyor. Prometheus + Grafana daha profesyonel ama kurulumu zor. Ben ikisini de kullanıyorum farklı sunucularda.
Sonuç
Sunucu yavaşlaması paniklettirir ama çoğu zaman çözülebilir bir sorundur. Kritik olan doğru teşhisi hızlı koyabilmek. Benim yaşadığım o geceki olaydan sonra, izleme ve otomatik uyarı sistemi kurdum. Artık sorun olmadan önce haberim oluyor.
Eğer hâlâ manuel kontrol yapıyorsanız, bir izleme sistemi kurun — ertesi gün değil, bugün. O gece 4’e kadar uyanmak zorunda kalmazsınız.


