Tanım
RAM (Random Access Memory), işlemcinin çalışan programlar ve kullandıkları veriler için başvurduğu, yüksek hızlı ve geçici çalışma belleğidir. Sunucudaki RAM miktarı, aynı anda kaç işlem, bağlantı ve önbelleğin bellekte tutulabileceğini belirler; elektrik kesildiğinde içeriği silinir.
Sunucuda RAM ne işe yarar?
Sunucuda RAM, çalışan servislerin kodunu, kullanıcı oturumlarını ve sık erişilen verileri disk yerine bellekte tutarak yanıt süresini kısaltmaya yarar. Bellek erişimi diskten, NVMe disk dahil, çok daha hızlıdır. Bu nedenle veritabanları (MySQL, MariaDB, PostgreSQL) sorgu önbelleği ve tablo verisi için, web sunucuları PHP-FPM süreçleri için, oyun sunucuları ise dünya ve oyuncu verisi için RAM kullanır.
Linux, boşta kalan belleği dosya önbelleği olarak kullanır. Bu yüzden free -h çıktısında “used” değerinin yüksek görünmesi tek başına sorun değildir; asıl bakılması gereken “available” sütunudur.
RAM yetmezse ne olur?
RAM yetmediğinde işletim sistemi önce swap alanını kullanmaya başlar; swap diskte olduğu için sistem belirgin biçimde yavaşlar. Bellek tamamen tükenirse Linux çekirdeğinin OOM Killer mekanizması en çok bellek tüketen süreci (çoğunlukla veritabanı ya da oyun sunucusu) sonlandırır. Belirtiler şunlardır:
- Sitenin ara ara 502 ya da 500 hatası vermesi
- Veritabanının kendiliğinden kapanması
- Sistem günlüğünde
Out of memory: Killed processsatırları
Ne kadar RAM gerekir?
Gereken RAM, çalışacak yazılımların toplam bellek ihtiyacına ve eşzamanlı kullanıcı sayısına göre belirlenir. Küçük bir WordPress sitesi az bellekle çalışırken modlu bir Minecraft sunucusu ya da büyük bir veritabanı çok daha fazlasını ister. Ölçmek için Linux sunucu performans izleme araçlarını kullanın ve kullanım sürekli sınıra yaklaşıyorsa VPS paketinizi yükseltin. Oyunlarda bellek ihtiyacı için Minecraft sunucu RAM ihtiyacı yazısı iyi bir örnektir. Bellek ile birlikte vCPU dengesine de dikkat edin.