Virtual Machine memory değerleri
Merhaba,
vCenter’ımızda bulunan bir virtual machine’de problem yaşadığımızda, bunun tespitini yapmak için kullandığımız tab’lardan birtaneside performance tab’ıdır. Ben bu bölümde performance tab’ında yer alan Memory değerleri ile ilgili kısa bilgiler vereceğim. Bana gelen mail’leri değerlendirdiğimde özellikle bu alanda bir problem olduğunu gördüm ve bu yazıyı yazmaya karar verdim.
VMware ESXi üzerinde bir virtual machine’e memory verdiğinizde, rezervation yapmadığınız sürece, virtual machine’ine atanan ram miktarını kendine tahsis etmez. VMware’in kullandığı Memory Management tekniğini incelediğimizde, virtual machine’e atanan ram’in hepsini kendine ayırmaz. Yanlızca kullandığı ram’i ESXi’dan talep eder. Yani bu durumda, virtual machine kullanmadığı ram’i ESXi host’a geri iade ediyor diyebiliriz. ESXi’da memory management’ini anlatan bir yazıyı ilerleyen günlerde yayınlayacağım.
Enbaştan itibaren Memory yazan hemen hemen heryeri anlatacağım buyüzden yabancılık çekmeyeceksiniz:)
Virtual Machine’in Summary bölümüne girdiğimizde yukarıdaki gibi bir bölüm ile karşılaşıyoruz. Bu bölümde 2 tane memory ile ilgili bölüm var. Bunlar;
Memory: Bu en basiti, virtual machine’e verilen ram miktarıdır.
Memory overhead: VMkernel’in bir virtual machine’i sanallaştırması için kullandığı ram miktarıdır. Memory Overhead, virtual machine’e verdiğiniz ram’in içerisinden kullanmaz. Sunucu üzerindeki ram’den tahsis eder bunu. Memory Overhead her virtual machine’de farklı görebilirsiniz. Yani bu virtual machine’e atadığınız device, cpu vb. aygıtlar memory overhead’ın azalmasına/artmasına neden olur. Doğrudan sizi ilgilendiren bir değer değildir oyüzden çok dikkat etmenize gerek yok. Ancak ne işe yaradığını bilmekte fayda var tabi.
Resources bölümüne inceleyeceğimiz 2 başlık var. Bunlar;
Consumed Host Memory: Fiziksel memory üzerinde bu virtual machine’e nekadarlık bir memory ayrıldığını gösterir. Buradaki değerin içerisine aynı zamanda memory overhead’ide içerir. Ancak şuna dikkat etmeniz gerekiyor. Burada görmüş olduğunuz Consumed Host Memory, bu değerin içerisine memory overhead dahildir.. Ancak; Performance tab’ı içerisinde yer alan consumed değeri’nin içerisinde memory overhead yoktur. Bu iki kavram birbirinden farklıdır yani. Bunu not almanızı öneriyorum.
Active Guest Memory: VMkernel bu virtual machine’in şuanda nekadar ram kullandığını active guest memory bölümünde gösterir. Buradaki değer bir istatistik’e bağlı olarak tahmini olarak yazılmış bir değerdir.
Memory ile ilgili başlıklar içeren bir diğer başlığımız ise Resources Allocation’dir. Burada yer alan değerler biraz daha kompleks değerlerdir. Karşımıza 2 tane bölüm çıkıyor. Bunlardan birtanesi Host Memory diğeri ise Guest Memory‘dir.
Host memory bölümünde inceleyeceğimiz 2 başlık var. Bunlar;
Consumed: Tekrar Consumed, bu değer virtual machine’in şuanda bu vm için nekadar memory allocated ettiğini gösterir. Ben bu virtual machine’e 16gb ram verdim ancak o 8.70GB ayırmış.
Overhead Consumption:virtual machine’in sanallaştırması için tüketilen memory miktardır. Consumed değeri içerisine dahildir bu değer.
Bunun hesaplaması oldukça basit:
Consumed = Private + Overhead Consumption
Guest Memory bölümündeki değerleri inceleyecek olursak;
Private: Fiziksel memory üzerinde saklanan bellek miktarıdır.
Shared: TPS (Transparent Page sharing) tarafından toplamda paylaşılan ram miktarıdır. TPS, ESXi Server’in memory management için kullandığı bir teknikdir.
Swapped: Buradaki değer, vmkernel’in swap aktivitesini gösterir. Guest’in swap aktivitesini göstermez.
Compressed: Buradaki değer, virtual machine’in cache için depoladığı memory miktarını gösterir.
Ballooned: Buradaki değer, Balloon Driver tarafından geri alınan memory miktarıdır.
Unaccessed: Virtual machine’in free memory’e ulaşamadığı memory miktarıdır.
Active: Virtual machine’in şuanda kullanmış olduğu ram miktarıdır. VMkernel’den talep edilen ram miktarıdır.
En son olarak inceleyeceğimiz değer ise Resources Settings altında bulunan değerlerdir. Ben burada Reservation ve Limit Configured bölümlerini anlatmayacağım çünkü bunlar bilinen değerler.
Worst Case Allocation: Kullanıcı tarafından yapılandırılan kaynağa bağlı olarak ve Cluster içerisindeki virtual machine’lerin kaynakları kullanımına göre değişir. Cluster içerisindeki tüm virtual machine’lerin kaynaklarını tam olarak tükkettiğini düşündüğünüzde buradaki değer dahada alt seviyeye inecektir. Yani yük durumunda, memory overcommit olma durumunda virtual machine ayrılan bellek miktarıdır.
Overhead Reservation: Memory overhead için rezerve edilen memory miktarıdır.
Umarım faydalı olmuştur.
İyi çalışmalar.