yandex metrika
Linux Sunucuda RAM Neden Dollar? 4 Sebebi ve Çözümü - Tecrübe Güncesi
Genel

Linux Sunucuda RAM Neden Dollar? 4 Sebebi ve Çözümü

Bir sabah sunucuma baktım: RAM kullanımı %95. Dün %60’tı. Hiçbir şey değiştirmemiştim. Ne oldu? Sorun şu ki Linux sunucularda RAM dolar ve çoğu zaman bu normal bir davranıştır. Ama bazen değil.

RAM neden dolar, ne zaman sorun olur ve nasıl çözülür? İşte öğrendiklerim.

Linux RAM Kullanımı Nasıl Çalışır?

Linux, boş RAM’i israf sayar. Eğer RAM’iniz boşsa, Linux onu disk önbelleği (page cache) olarak kullanır. Bu sayede tekrar okunan dosyalar disk yerine RAM’den gelir — çok daha hızlı.

Yani free -h çıktısında “available” satırına bakmalısınız, “free” satırına değil. “Free” düşük olabilir ama “available” yeterliyse sorun yok.

free -h
              total    used    free    shared  buff/cache   available
Mem:           3.8G    2.1G    200M    45M     1.5G         1.4G

Bu örnekte “free” 200 MB ama “available” 1.4 GB. Linux buff/cache’i gerektiğinde serbest bırakır. Sorun yok.

RAM’in Gerçekten Dolduğu 4 Durum

1. Memory Leak (Bellek Sızıntısı)

Bir yazılım sürekli RAM ayırıyor ama geri bırakmıyor. Zamanla RAM dolar ve sistem swap’a düşer. En sık karşılaştığım sebep bu.

PHP-FPM, Node.js ve Java uygulamalarında yaygın. Bir WordPress eklentisi kötü kodlanmışsa, PHP süreçleri zamanla büyür ve RAM’i tüketir.

Nasıl bulunur:

ps aux --sort=-%mem | head -10
smem -t -k

Sürekli büyüyen bir süreç görürseniz, memory leak var demektir. Çözüm: süreci düzenli olarak yeniden başlatın veya yazılımı güncelleyin.

2. Çok Fazla İşlem (Process)

Her PHP isteği ayrı bir işlem başlatır. WordPress sitenize aynı anda 100 ziyaretçi gelirse, 100 PHP-FPM işlemi çalışır. Her biri 40-80 MB RAM kullanır. 100 x 60 MB = 6 GB RAM. 4 GB’lık bir sunucuda bu patlama demek.

Nginx + PHP-FPM konfigürasyonunda pm.max_children değerini kontrol edin. Bu değer sunucunuzun RAM’ine göre ayarlanmalı.

Sunucu RAM modülleri kurulumu, donanım yükseltme konsepti

3. Veritabanı Sorguları

MySQL/PostgreSQL karmaşık sorgularda geçici tablolar için RAM kullanır. Büyük bir veritabanında optimize edilmemiş bir sorgu GB’larca RAM tüketebilir.

Özellikle WordPress’te wp_posts tablosu yüz binlerce satıra ulaştığında, arama sorguları çok RAM harcar.

mysql -e "SHOW ENGINE INNODB STATUS\G" | grep "buffer pool"

4. Arka Plan Servisleri

Redis, Elasticsearch, Logstash, monitoring araçları… Her biri RAM tüketir. Bir sunucuda 5-6 servis çalışıyorsa, bunların toplamı RAM’in büyük kısmını kaplayabilir.

Benim sunucumda: Nginx (20 MB), PHP-FPM (200 MB), MySQL (400 MB), Redis (100 MB), CrowdSec (40 MB), n8n (150 MB). Toplam: ~910 MB. 2 GB’lık bir sunucuda bu zaten sınırda.

Bellek sızıntısı görselleştirmesi, artan kaynak tüketimi grafiği

RAM Yetersizliğinde Ne Yapmalı?

  1. Süreçleri inceleyin: htop ile en çok RAM kullanan süreci bulun.
  2. Gereksiz servisleri kapatın: Kullanmadığınız servisleri durdurun.
  3. Swap ekleyin: Geçici çözüm ama faydalı. 2 GB swap dosyası oluşturun.
  4. PHP-FPM ayarlayın: pm.max_children değerini RAM’inize göre hesaplayın.
  5. Redis/Memcached kullanın: Veritabanı yükünü azaltarak dolaylı RAM tasarrufu sağlar.
  6. Sunucu yükseltin: Bunların hiçbiri yetmiyorsa, RAM ekleyin. 4 GB minimum, 8 GB rahat.

Sıkça Sorulan Sorular

Linux swap kullanımı normal mi?

Birkaç MB normal. Ama sürekli yüzlerce MB swap kullanılıyorsa RAM yetersiz demektir. Swap, diski RAM gibi kullandığı için ciddi performans kaybı yaratır.

RAM eklemek sunucuyu hızlandırır mı?

Eğer RAM yetersizliğinden yavaşlıyorsa, kesinlikle evet. Ama CPU veya disk I/O darboğazı varsa RAM eklemek fayda etmez. Önce darboğazın ne olduğunu tespit edin.

2 GB RAM bir sunucu için yeterli mi?

Tek bir WordPress sitesi için evet. Ama birden fazla site, veritabanı ve servis çalışıyorsa yetmez. 4 GB başlangıç için iyi, 8 GB rahat bir seviye.

buff/cache yüksek olması sorun mu?

Hayır, tam tersi faydalı. Linux boş RAM’i disk önbelleği olarak kullanır. Gerektiğinde bu alan serbest kalır. “available” değerine bakın, “used” değerine değil.

RAM sızıntısı nasıl önlenir?

Yazılımı güncel tutun. PHP-FPM’de pm.max_requests ile süreçlerin düzenli yeniden başlatılmasını sağlayın. Node.js uygulamalarında –max-old-space-size parametresiyle bellek sınırı koyun.


Kaynaklar:

  • Linux Kernel Documentation, “Memory Management”, 2025
  • DigitalOcean, “How to Optimize RAM Usage on Linux”, 2025
  • Kişisel sunucu yönetim deneyimi, 2024-2026

Türkay

Teknoloji, bilgisayar güvenliği, WordPress ve yapay zeka konularında içerik üreten Tecrübe Güncesi'nin editörü. Linux sistem yönetimi, ağ güvenliği ve web geliştirme alanlarında yılların getirdiği tecrübeye sahip. 2015'ten bu yana Türkçe teknoloji içerikleri üreterek okuyuculara yol göstermeyi hedefliyor.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Başa dön tuşu