ESX ve ESXi sunucularda uzun süredir kullanılmakta olan TPS (Transparent Page Sharing), bir sanal makinenin kendisine ayrılmış olan bellekteki bellek sayfalarının, eğer aynısı başka bir sanal makinede de var ise, kendi belleğindeki bu sayfaları diğer vm’le paylaşarak bellek tasarrufu sağlayıp,sunucu yükünü azaltmaya yönelik bir bellek yönetim teknolojisidir.
Peki bu ne anlama geliyor, bir örnekle açıklayım. Bir Esxi sunucusu üzerinde iki tane aynı versiyon Windows sunucu var ise bu sunucuların bellek sayfalarının bir kısmının aynı olması kaçınılmazdır, bu nedenle diyelim ki VM-A belleğindeki sayfaları VM-B ile paylaşabilir ve bunun yönetimi Host tarafından sağlanır.
Sanal sunucunun Resource allocation tabındaki Memory bölümünde Guest memory bölümünde Private ve Shared olmak üzere iki değişken görürsünüz. Private, sadece o sanal sunucunun kullandığı bellek miktarı, Shared ise TPS üzerinden diğer sunucu yada sunucularla paylaştığı bellek miktarıdır.
VM için allocate ettiğiniz belleğin bellek sayfalarının başka sunucularla paylaşımını engellemek için TPS’i kapatmanız gerekir. Bunu host bazında yapmaktansa vm bazında yapmanız gerekiyorsa, aşağıdaki adımları uygulayınız :
Öncelikle sanal sunucunun kapalı olması gerekiyor. Sanal sunucu kapandıktan sonra sunucuya sağ tıklayıp Edit, açılan pencereden à Optionsà Advanced à General à Configuration Parameters seçilir.
Açılan pencereden “Add Row” a tıklanır ve açılan boş alana sched.mem.pshare.enable yazılıp “Value” alanına false yazılır.
Daha sonra sanal sunucuyu boot edersiniz. Sunucu açıldıktan sonra tekrar kontrol ettiğinizde shared memory 0,00 MB olmalıdır :
Umarım faydalı olmuştur. Esenlikle kalın 🙂