Tag Archives: ESX Memory

ESX Memory Kavramları ve Anlamları

ESX Memory Kavramları ve Anlamları

ESX sanallaştırma platformunda en önemli parametrelerden biri de memory yönetimidir. İster cluster ortamı olsun isterse de stand alone bir ESX sanallaştırma ortamı olsun her iki durumda da bellek yönetimi temelde değişmez. Sanal makinalarımıza ayırmamız gereken miktar, boşta kalan bellek miktarı, ne kadarının kullanıldığı ve ne kadarının boşta kaldığı gibi bellek hesaplamaları sanallaştırma platformunun performans yönetiminin temelini oluşturur. İşte bu yönetimi daha verimli yapabilmek için ESX sanallaştırma platformunun memory kavramlarına ve onun anlamlarına hakim olmak işimizi epey kolaylaştıracaktır. Ben de günlük yaşamımda edindiğim bilgiler ışığında derlediğim memory kavramları ve anlamlarını bir nevi sözlük mantığıyla paylaşmak istedim.

Allocated Memory: Ayrılmış ya da atanmış memory demektir. ESX sanallaştırma platformunda oluşturulan sanal makinalarımıza atadığımız bellek için kullanılır bu tanım. Ama bu tanım da kendi içerisinde idle ve active olarak 2’ye ayrılır:

Idle: allocate edilmiş yani sanal makinamıza atamış olduğumuz memory’nin o an kullanılmayan kısmıdır.

active: allocate edilmiş yani sanal makinalarımıza atamış olduğumuz bellek miktarının o anda kullanılmakta olan kısmını tanımlar.

Cache: Buradaki cache, günlük yaşamda kullandığımız Windows dünyasında da kullanılan cache kavramıyla aynıdır. En basit tanımıyla anlatacak olursam: En sık kullanılan uygulama ve servislere ihtiyaç olduğunda daha hızlı erişmek için RAM üzerinde belirli alanda tutulur. İşte bu alana cache denir.

Memory Overcommit: Host üzerindeki sanal makinalaramıza atamış olduğumuz toplam bellek miktarının, fiziksel makinamızın toplam memory miktarından daha yüksek olması anlamına gelir.

Memory Undercommit: Memory overcommitin tam tersi durumudur. Burada da sanal makinaların toplam bellek miktarının fiziksel host üzerindeki toplam bellek miktarının altında olması durumudur.

 Transparent page sharing: Aynı host üzerinde bulunan sanal makinalarımız üzerinde çalışan uygulama, servis ve rollerden ortak, aynı ya da birbirine çok yakın noktalar varsa bunları hepsinde ayrı ayrı oluşturmaktansa tek bir tane oluşturur ve hepsine kullandırtır. Mesela diyelim ki 2 adet IIS serverımız olsun bunların barındırdıkları sayfalar aynı olabilir ama servis, uygulama ve OS seviyesinde birbirine çok yakın ya da aynı olan memory içeriklerini (pages) kullanırlar. işte bu durumda ESX tüm sanal makinalar için ayrı ayrı bellek tutmaktansa bir tanesini tutar ve bunu hepsine kullandırtır. Yani tekilleştirme işlemi yapılmaktadır. Bu tekilleştirme işlemi her 60 dk. bir yenilenmektedir. Ama bu süre yani Mem.ShareScanTime değiştirilebilir olduğundan süreyi istediğimiz gibi değiştirebiliriz.

Memory Ballooning: Host üzerinde bulunan vm’lerden birine RAM ihtiyacı doğduğunda ESX o an başka bir vm üzerinde bulunan ancak kullanılmayan idle memoryden bir kısmı alıp ihtiyacı olan vm’e atar, ihtiyacı bittiğindeyse geri alır. İşte bu kavrama memory ballooning denir.

Compression: ESX üzerindeki boş memory değeri azaldıkça VM’lerin kullandıkları memory üzerindeki alanları sıkıştırarak boş alan kazanmaya çalışır.

Swapping: Yukarıdaki yöntemlerin yani compression ile memory ballooning hiç biri işe yaramazsa bu sefer de ESX vm’lerin memory page’lerini hdd üzerine yazar. Yalnız bunu yaparken vm önceliği yoktur, ESX bunu rastgele yapar. Bu durum vm’in performansını doğrudan etkiler.

Memory size: Sanal sunucunuz üzerine atadığınız sanal ram miktarıdır.

Host Mem – Mb: Esx host sunucunuz üzerinde o vm tarafından kullanılan ram kullanımını gösterir.

Guest Memory: Sanal sunucunuzun kullandığı yüzdelik ram miktarıdır.

Memory Overhead: Vmkernel’in bir makinayı sanallaştırmak için kullandığı RAM miktarıdır. Bu miktar sanal makinaya atanan RAM miktarından harcanmaz host üzerindeki RAM’den harcanır. Memory overhead her makinada değişiklik gösterir. Bunun nedeni her makinaya atanan cpu, network kart, RAM miktarı gibi aygıtların değişiklik göstermesi.  Ne kadar çok aygıt varsa memory overhead miktarı da o kadar artar.

Consumed host memory: Fiziksel memory üzerinde bu vm için toplamda ne kadar memory ayrıldığını gösterir. Bu değere aynı zamanda memory overhead oranı da dahildir.

Active Guest Memory: VM’in şuanda ne kadar RAM kullandığı değeridir. Buradaki değer bir istetistiki değerdir ve tahminidir. Biraz şaşma ihtimali vardır.

Private: Fiziksel memory üzerinde saklanan bellek miktarıdır.