VDS'te Ne Kadar RAM Gerekir? 2 GB'tan 24 GB'a İş Yükü Tablosu

VDS'te gereken RAM iş yüküne bağlıdır. Tipik başlangıç değerleri şöyledir: tek bir WordPress sitesi için 2–4 GB, WooCommerce mağazası veya birkaç site barındıran panelli sunucu için 8 GB, orta ölçekli e-ticaret, 10–20 GB'lık veritabanı veya oyun sunucusu için 16 GB. Hesaplamada işletim sistemi, web sunucusu, PHP süreçleri, veritabanı buffer'ı ve %20–30 pay birlikte düşünülmeli, sonuç ölçümle kontrol edilmelidir.

Bu rehberdeki aralıklar kesin kurallar değil, ölçüme başlamak için makul başlangıç noktalarıdır. Aynı RAM'le çalışan iki site; eklenti sayısına, önbellek kullanımına ve eşzamanlı ziyaretçi sayısına göre çok farklı bellek tüketebilir. Aşağıda hem tabloyu hem de kendi ihtiyacınızı hesaplama yöntemini bulacaksınız. Orta ölçekli projelere uygun 16 GB RAM'li VDS paketi dahil tüm kademeleri paket sayfasında görebilirsiniz.

Kısa cevap: iş yüküne göre RAM tablosu

Tablodaki paketler Bulutzone'un Türkiye VDS kademeleridir; tüm TR Cloud paketlerinde DDR4 ECC RAM ve NVMe disk kullanılır.

RAMTipik iş yükü (başlangıç değeri)Örnek Bulutzone paketi
2 GBPanelsiz tek küçük site, test ortamı, VPN veya hafif bir servisTR Cloud v1: 1 çekirdek, 2 GB, 20 GB NVMe
4 GBTek WordPress sitesi, kontrol panelli küçük sunucuTR Cloud v2: 2 çekirdek, 4 GB, 40 GB NVMe
6 GBBirkaç WordPress sitesi, Redis önbellekli tek siteTR Cloud v3: 4 çekirdek, 6 GB, 60 GB NVMe
8 GBWooCommerce mağazası, panelli çoklu site, küçük Docker yığınıTR Cloud v4: 4 çekirdek, 8 GB, 100 GB NVMe
16 GBOrta ölçekli e-ticaret, 10–20 GB'lık veritabanı, oyun sunucusuTR Cloud v5: 6 çekirdek, 16 GB, 160 GB NVMe
24 GBBüyük veritabanı, aynı sunucuda birden çok yoğun uygulamaTR Cloud v6: 8 çekirdek, 24 GB, 200 GB NVMe

RAM ihtiyacı nasıl hesaplanır?

Sunucudaki her bileşenin belleğini ayrı ayrı toplayın, üzerine pay ekleyin:

Toplam RAM ≈ (işletim sistemi + web sunucusu + PHP süreçleri + veritabanı buffer'ı + önbellek + diğer servisler) × 1,2–1,3

İşletim sistemi payı

Kontrol paneli olmayan minimal bir Linux sunucu birkaç yüz MB ile çalışır. Kontrol paneli eklendiğinde tablo değişir: cPanel'in AlmaLinux için resmi gereksinimi en az 2 GB, önerilen 4 GB RAM'dir. Panel; e-posta, DNS, spam filtresi ve izleme servisleriyle birlikte gelir ve bunların her biri bellek tüketir. Windows Server da benzer bir Linux kurulumuna göre boşta daha fazla bellek kullanır.

Web sunucusu ve PHP süreçleri

Nginx veya LiteSpeed gibi olay tabanlı web sunucuları az bellek kullanır; asıl tüketim PHP tarafındadır. PHP-FPM'de pm.max_children, php.net dokümantasyonuna göre aynı anda sunulabilecek istek sayısının üst sınırıdır. Her PHP süreci belleğin bir kısmını kullandığından hesap şöyledir: PHP'ye ayrılan bellek ≈ pm.max_children × ortalama süreç belleği. Ortalama süreç belleğini tahmin etmek yerine ölçün:

# Çalışan PHP-FPM süreçlerinin sayısı ve ortalama bellek kullanımı (MB)
ps -eo rss,comm | awk '/php-fpm/ {t+=$1; n++} END {if (n) printf "%d süreç, ortalama %.0f MB\n", n, t/n/1024}'

Bu değer RSS'tir; top kılavuzunun RES tanımına göre paylaşılan belleği de içerir, bu yüzden gerçek tüketimi biraz yüksek gösterir. Hesap için güvenli taraftadır. Ölçümü sitenin yoğun olduğu saatte yapın.

Veritabanı buffer'ı

MySQL ve MariaDB'de en büyük bellek kalemi InnoDB buffer pool'dur; sık okunan tablo ve indeks sayfaları burada tutulur. MySQL dokümantasyonuna göre innodb_buffer_pool_size varsayılan olarak 128 MB'tır ve yalnızca veritabanı çalıştıran bir sunucuda fiziksel belleğin %80'ine kadar ayarlanabilir. Web sunucusu ve PHP aynı makinedeyse bu oran çok daha düşük tutulmalıdır. Buffer pool'u ne kadar büyük yapmanız gerektiğini görmek için verinizin boyutuna bakın:

mysql -e "SELECT ROUND(SUM(data_length + index_length)/1024/1024) AS toplam_mb FROM information_schema.tables WHERE engine='InnoDB';"

Tüm verinin bellekte olması gerekmez; sık erişilen kısmın (çalışma seti) sığması yeterlidir. Ancak veri boyutu buffer pool'dan çok büyükse sorgular diske düşer ve disk hızı belirleyici hale gelir.

Önbellek

Redis veya Memcached ile nesne önbelleği kullanıyorsanız ayırdığınız belleği hesaba ekleyin; Redis'te üst sınır maxmemory ayarıyla belirlenir. Linux çekirdeği de boşta kalan belleği dosya önbelleği olarak kullanır. Bu yüzden free çıktısındaki "free" sütununun düşük olması sorun değildir; bakmanız gereken sütun "available"dır, yani takas (swap) yapmadan yeni uygulamalara ayrılabilecek tahmini bellek.

Pay bırakma (%20–30)

Trafik artışları, gece çalışan yedekleme ve cron işleri, güncellemeler ve beklenmedik bellek sızıntıları için pay bırakın. Payı olmayan bir sunucu, sıradan bir kampanya gününde swap'e düşebilir.

Örnek hesap (varsayımlarla): Bir WooCommerce sunucusunda işletim sistemi için 0,5 GB, Nginx için 0,1 GB, 20 PHP-FPM süreci × 80 MB = 1,6 GB, MariaDB buffer pool ve diğer veritabanı tamponları için 2,5 GB, Redis için 0,5 GB varsayalım. Toplam yaklaşık 5,2 GB eder; %30 payla 6,8 GB'a çıkar. Bu örnekte 8 GB'lık bir paket doğru başlangıçtır. Kendi hesabınızda varsayımlar yerine ölçtüğünüz değerleri kullanın.

Senaryolar

Tek WordPress sitesi

Panelsiz, iyi önbelleklenmiş tek bir WordPress sitesi 2 GB'ta çalışabilir; PHP-FPM havuzunu küçük tutmak gerekir. cPanel gibi bir panel kullanacaksanız panelin önerdiği 4 GB'tan başlayın. Sayfa önbelleği kullanan sitelerde PHP'ye düşen istek sayısı azaldığı için bellek ihtiyacı belirgin biçimde düşer.

WooCommerce mağazası

WooCommerce'in sunucu önerilerinde WordPress bellek limitinin 256 MB veya üzeri olması gerektiği belirtilir. Bu değer toplam RAM değil, tek bir PHP isteğinin kullanabileceği üst sınırdır. Sepet, ödeme ve hesabım sayfaları sayfa önbelleğinden yararlanamadığı için mağazalarda PHP'ye giden istek oranı yüksektir. Ürün ve sipariş tabloları da büyüdükçe veritabanı belleği artar. Bu yüzden 8 GB tipik başlangıç noktasıdır.

Çoklu site ve kontrol paneli

Aynı sunucuda birden çok site barındırıyorsanız her sitenin kendi PHP havuzu olabilir ve boşta bekleyen süreçler de bellek tutar. Panelin e-posta ve spam filtresi servisleri de eklenir. 8 GB, panelli ve birkaç orta trafikli siteli bir sunucu için makul başlangıçtır.

Veritabanı sunucusu

Yalnızca veritabanı çalıştıran bir sunucuda RAM'in büyük kısmı buffer pool'a verilebilir. Veri boyutu 10–20 GB olan ve sık erişilen kısmı bunun bir bölümü olan bir veritabanı için 16 GB tipik başlangıçtır. MySQL'in innodb_dedicated_server seçeneği bellek ayarlarını otomatik hesaplar, ancak dokümantasyon bunu yalnızca sunucunun tüm kaynaklarını MySQL'e ayırdığınızda önerir.

Oyun sunucusu

Java tabanlı oyun sunucularında, örneğin Minecraft Java Edition'da, belleği Java sanal makinesinin heap ayarları (-Xms ve -Xmx) belirler. Heap'e sunucunun tüm RAM'ini vermeyin; işletim sistemi ve Java'nın heap dışı belleği için 1–2 GB bırakın. Az eklentili küçük bir topluluk sunucusu için 8 GB, büyük mod paketleri ve kalabalık sunucular için 16 GB tipik başlangıç değerleridir. Oyuncu sayısı ve yüklenen harita alanı arttıkça ihtiyaç büyür.

Docker yığını

Konteynerlerde her servisin belleği ayrı ayrı toplanır: uygulama, veritabanı, önbellek, kuyruk ve ters vekil (reverse proxy). docker stats komutu her konteynerin anlık kullanımını gösterir; --memory parametresiyle her konteynere üst sınır koymak, birinin taşmasının diğerlerini etkilemesini önler.

16 GB VDS kimler için uygun?

Web, PHP ve veritabanını aynı sunucuda çalıştıran orta ölçekli e-ticaret siteleri, 10–20 GB veritabanına sahip uygulamalar, panelli ve çok siteli ajans sunucuları, modlu oyun sunucuları ve birden çok servisten oluşan Docker yığınları için uygundur. Bulutzone'da bu kademe TR Cloud v5'tir (6 çekirdek, 16 GB DDR4 ECC RAM, 160 GB NVMe). Veri setiniz küçükse ve ölçümde "available" bellek sürekli yüksek görünüyorsa 16 GB'a geçmek belirgin bir fark yaratmaz; fazladan bellek çoğunlukla dosya önbelleğine gider.

RAM yetmiyor mu? Belirtiler

İki güvenilir belirti vardır: sürekli swap trafiği ve OOM killer kayıtları.

Swap kullanımı

Swap, RAM dolduğunda bellek sayfalarının diske taşındığı alandır. Swap'te bir miktar veri durması tek başına sorun değildir; sorun, sayfaların sürekli diske gidip gelmesidir.

free -h
# "available" sütunu takas yapmadan kullanılabilecek tahmini bellektir

vmstat 1 10
# "si" (diskten belleğe) ve "so" (bellekten diske) sütunları sürekli sıfırdan büyükse RAM yetmiyor

OOM killer

OOM killer (Out of Memory killer), bellek tamamen tükendiğinde sistemi ayakta tutmak için Linux çekirdeğinin bir süreci sonlandırmasıdır. Seçimde en çok bellek kullanan süreçler öne çıkar; web sunucularında bu sıklıkla veritabanı sürecidir. Sitenin aniden "veritabanı bağlantı hatası" vermesi bu yüzden olabilir.

# Çekirdek kayıtlarında bellek tükenmesi olaylarını arar
journalctl -k | grep -i -E "out of memory|killed process"

RAM mi, CPU mu yükseltilmeli?

Belirtiye göre karar verin; yanlış kaynağı yükseltmek sorunu çözmez.

BelirtiOlası darboğazYapılacak
Sürekli si/so, OOM kayıtları, düşük "available"RAMRAM yükseltin veya PHP havuzu ve buffer pool'u küçültün
Yüksek us/sy işlemci kullanımı, load average çekirdek sayısının üzerinde, düşük iowaitİşlemciÇekirdek sayısını artırın, PHP ve sorgu optimizasyonuna bakın
Yüksek iowait, RAM yeterliDiskDisk tipini ve IOPS limitini kontrol edin
Yüksek steal time (st)Fiziksel sunucudaki işlemci paylaşımıSağlayıcıyla görüşün

Load average değerini doğru yorumlamak için load average rehberimize, disk tarafı için NVMe ve IOPS yazımıza, steal time için VDS ve VPS farkı yazımıza bakabilirsiniz.

Hesabınızı yaptıktan sonra ihtiyacınıza uyan RAM seviyesini seçin: TR Cloud paketleri 2 GB'tan 24 GB'a kadar altı kademede sunuluyor.

Sık sorulan sorular

4 GB VDS WordPress'e yeter mi?

Tek bir WordPress sitesi için çoğu durumda yeter, özellikle sayfa önbelleği kullanılıyorsa. Aynı sunucuda cPanel gibi bir panel, e-posta servisleri ve birden fazla site varsa 4 GB sınırda kalır. Karar vermeden önce yoğun saatte free -h ve vmstat ile ölçüm yapın.

free çıktısında boş RAM çok az görünüyor, bu sorun mu?

Genellikle hayır. Linux boştaki belleği dosya önbelleği olarak kullanır ve gerektiğinde uygulamalara geri verir. Bakmanız gereken değer "free" değil "available" sütunudur; bu değer sürekli düşükse ve swap trafiği varsa RAM yetmiyordur.

Swap alanı açmalı mıyım?

Küçük bir swap alanı, ani bellek taşmalarında OOM killer'ın bir süreci sonlandırmasını geciktirir ve genellikle önerilir. Ancak swap RAM'in yerini tutmaz; sürekli swap kullanımı, disk ne kadar hızlı olursa olsun yavaşlama demektir ve RAM yükseltme ihtiyacının işaretidir.

Kaynaklar

VDS Rehberleri konusundaki hizmetlerimiz için VDS sanal sunucu paketleri sayfasına göz atabilirsiniz.

İncele

İlgili rehberler