Başlangıç > VMware > 104: Memory State

104: Memory State

Sanallaştırma söz konusu olduğunda çok duyduğumuz bir kavram vardır, memory overcommitment. Memory overcommitment en kaba tabiriyle, bir hipervizörün sahip olduğu fiziksel bellek kaynaklarından daha fazlasını VM’lere atayabilmesidir. Bu olgunun sağlanabilmesi için her hipervizör kendine has algoritmalar kullanır. ESX’in kullandığı algoritmalar:

  • TPS (Tranparent Page Sharing)
  • VM Ballooning
  • Memory Compression
  • VMkernel Swapping

Bu algoritmalar ile ilgili detaylara bu yazı dahilinde değinmeyeceğim. Benim ilgimi çeken bir başka konu, ESX hangi algoritmayı kullanacağına nasıl karar verir?

Cevap, memory states. VMkernel hangi aksiyonu alacağına “memory state” hesaplamasına istinaden karar verir. Toplam fiziksel bellekten konsol işletim sistemi için kullanılan bellek miktarını çıkarır ve toplam kullanılabilir alanı bu değere oranlar. Yani:

Sonrasında bu değerin içerisinde bulunduğu aralık doğrultusunda bir state atar. ESX’de dört adet “free memory state” tanımı bulunmaktadır. Bunlar sırası ile high, soft, hard ve low.

  1. HIGH STATE: Free Memory %100 ile %6 arasında ise ESX high state durumundadır. Bu durumda, TPS dışında özel bir algoritma çalıştırmaz çünkü TPS dışındaki tüm algoritmalar VM performansını olumsuz etkileyen durumlara sebebiyet verir. TPS ise sürekli çalışan bir algoritmadır ve performansa olumsuz bir etkisi yoktur. 60 dakikada bir çalışır ve tespit ettiği aynı bellek bloklarını tekilleştirerek fiziksel sunucuya daha fazla bellek kaynağı yaratır. Gerçi güncel hardware MMU desteğine sahip sistemlerde durum biraz daha farklı, vSphere4 ile birlikte large page’ler desteklenmeye, 4KB yerine 2 MB’lık bellek blokları kullanılmaya ve high state durumunda TPS kullanılmamaya başlandı. Detaylara bu makaleden ulaşabilirsiniz.
  2. SOFT STATE: Free Memory %6 ile %4 arasında ise ESX soft state durumundadır. Bu durumda VMkernel ilk olarak 2MB’lık bellek bloklarını 4KB’a böler ve TPS’den maksimum fayda sağlamaya başlar. Paralelde ise VM Ballooning başlar. VMkernel en fazla fayda sağlayabileceği VM’leri seçer, o VM’lerin balloon driver’ları aracılığı ile VM’in idle bellek bloklarını kendisine iletmesini ister.
  3. HARD STATE: Free Memory %4 ile %2 arasında ise ESX hard state durumundadır. Bu durumda, ballooning devam eder (yavaş bir operasyon olduğundan etkisi zaman alabilir). Diğer taraftan artık sıra VMkernel swapping’e gelmiştir. Ancak buna geçmeden önce, 4.1 ile gelen bir özellik ile VMkernel önce bellek bloklarını sıkıştırarak kendisine kaynak yaratmaya çalışır. Eğer bu da hard state durumundan kurtulmaya yetmez ise, korkulan olur ve VMkernel swap başlar. Bu bir adminin en istemeyeceği durumdur. Çünkü bu durum, örneğin hiçbir şekilde diske swap edilmemesi gereken bellek bloklarının, işletim sisteminin insiyatifi dışında diske swap edilmesi anlamına gelir.
  4. LOW STATE: Free Memory %2’nin altında ise ESX low state durumundadır. Bu durumda sadece swap yapılır ve ESX’den her türlü hatayı bekleyebilirsiniz, PSOD (purple screen of death) dahil.

ESX sunucunuzun şu  anda hangi durumda olduğunu merak ediyor olabilirsiniz. Esxtop üzerinden bunu görebilirsiniz.

Bir detay daha var. %6 ile başlayan değerler silsilesi, ESX’in varsayılan değerleridir. Bu değerler bir advanced parametre ile değiştirilebilir. Normalde buna ihtiyaç duymayabilirsiniz ancak VDI gibi yüksek konsolidasyon oranlarının bulunduğu ortamlarda bu değeri biraz azaltmak fayda sağlayabilir. İlgili advanced parametre:

  • Mem.MinFreePct (bu değer yüzde cinsindendir, varsayılan değeri 6’dır ve 2’nin altında verilemez)

Aslında tek bir değer diğer tüm değerleri belirler. Çünkü VMkernel diğer değerleri bu tek değerden oranlar. Kullandığı oranlar ise hardcoded olarak işlenmiştir.

Free memory state thresholds {
soft:64 pct
hard:32 pct
low:16 pct
}

Tüm bu bahsettiklerimiz dışında zaman zaman, genelde yanlış konfigürasyon sonucu, farklı algoritmaların devreye girdiklerine şahit olabiliriz. Ama bunlar istisnai durumlardır.

Kategoriler:VMware Etiketler:,
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s

%d blogcu bunu beğendi: