OpenVZ Görünen RAM vs. Gerçek RAM

OpenVZ ile sanallaştırılmış VPS'lerde, hosting firması VPS ile gelen RAM miktarını MB/GB cinsinden belirtirler. (Ör: 256MB / 512 burstable) Böyle bir durumda beklentiniz şu olmalıdır:

  • Sanal makineniz için size ayrılmış daimi 256MB'lık RAM
  • RAM dolduğu zaman kullanılabilecek ancak swapin/swapout olabilecek (bu da yavaşlık anlamına gelir) 256MB daha. (Toplam 512MB)

Ancak gerçekte böyle mi?

Hosting firmanız, bir fiziksel sunucuyu haddinden fazla sanal sunucu ile yükleyerek gerçekte sadece size ait olması gereken RAM alanını da paylaştırıyor olabilir mi? Bunu kontrol paneli, top gibi kalsik yöntemlerle öğrenmeniz mümkün değil.

Ancak şu kaynakta bunun bir şekilde öğrenilebileceği belirtiliyor.

Aşağıdaki kodu çalıştırın:

sudo cat /proc/user_beancounters | grep -E '(uid|physpages|oomguarpages)'

Şöyle bir çıktı gelecektir:

[email protected]:~# sudo cat /proc/user_beancounters | grep -E '(uid|physpages|oomguarpages)' uid resource held maxheld barrier limit failcnt physpages 217899 524384 0 524288 0 oomguarpages 181208 277135 9223372036854775807 9223372036854775807 0

held kolonunda physpages ve oomguarpages satırlarında yer alan rakamlar farklı ise normalde RAM'de saklanması gereken bazılarının diske gitmiş demektir! (swapping) Şu an benim VPS firmamın da aynısını benim hostingime yaptığımı görüyorsunuz.

Tam olarak kaç MB'ın swap-out ettiğini görmek için aşağıdaki formülü kullanın:

(physpages - oomguarpages) * 4096 / 1024 / 1024

Benim VPS'im için bu değer:

(217899 - 181208) * 4096 / 1024 / 1024 = 143MB!

Bu da bana vaadedilen 2GB'lık RAM'in %7'sinin aslında bana verilmediği anlamına gelir. Ancak o an kullanımda olan RAM/SwapOut RAM yüzdesi daha mantıklı bir istatistik sağlayacaktır:

Kullanılan RAM: 217899 * 4096 / 1024 / 1024 = 851MB
Swap-out RAM: 143MB

Bilgilerimin %16'sı olması gereken yerde, RAM'de durmuyor.

Bitirirken

Acaba sizin VPS sağlayıcınız da aynı çakallığı yapıyor mu?