Memory Overcommitment Nedir?

tarafından 1 Ocak 2017 tarihinde VMware, VMware ESXi kategorisine yazıldı.

Merhaba,

Memory overcommitment sorusu ile sıkça karşılaşıyorum. Bu konu, birçok kişinin farkında olmadığı oldukça önemli bir konu aslında.

Bir virtual machine create ettiğinizde virtual machine’e vermiş olduğunuz memory kadar fiziksel memory üzerinde kaynak ayrılmasını beklersiniz. VMware vSphere ESXi üzerinde memory management’i biraz daha farklı çalışmaktadır. Tüm virtual machine’lere vermiş olduğunuz memory miktarı toplamda fiziksel memory miktarından fazla olabilir. Bu duruma memory overcommitment denir. ESXi hypervisor’un memory management‘inda kullanılan tekniklerden dolayı virtual machine’lere atanan memory miktarı, fiziksel memory miktarından fazla olabilir. Yani virtual memory, fiziksel memory’den daha fazla olabilir.

ekran-resmi-2017-12-31-22-31-19

Yukarıda 2 farklı mimarı görüyorsunuz. Fiziksel mimaride, fiziksel sunucu üzerindeki memory doğrudan işletim sistemine dedicated durumdadır. Ancak sanallaştırma mimarisinde ise bu durum biraz daha farklıdır. Yukarıdaki şekile göre, X86 Sunucumuz üzerinde toplamda fiziksel olarka 8GB memory olduğunu düşünebilirsiniz. Ancak ESXi’in memory management’i sayesinde, ESXi üzerine birden fazla virtual machine oluşturabilir ve bu virtual machine’lere fiziksel sunucu üzerindeki memory miktarına bakılmaksızın memory atayabilirsiniz. Örneğin, ESXi ‘in bulunmuş olduğu fiziksel sunucumda 8GB memory var. Yukarıdaki şekil’i incelediğinizde 3 tane virtual machine’in memory miktarları 8GB, 2GB ve 1GB olarak verilmiş gözüküyor. Virtual machine’lere verilen toplam memory miktarına baktığınızda 11GB olarak gözükmektedir. Ancak fiziksel sunucuda 8GB memory olduğu için 11GB – 8GB = 3GB memory overcommit yapmış olduğu gözükmektedir. Görüldüğü gibi fiziksel ESXi host üzerinde 8 GB memory var ancak fiziksel memory kaynağına bakmaksızın virtual machine create edebiliyor ve kendi isteğime göre memory verebiliyorum.

Yukarıdaki senaryoya baktığınızda virtual machine’lere atanan memory miktarı toplam 11 GB ancak fiziksel ESXi host’umda 8GB memory olduğundan bahsetmiştik. Virtual machine’ler boşta iken kullanılan memory miktarı oldukça düşüktür. Memory management’i active memory üzerinden yapıldığı için, 8GB memory’e sahip bir virtual machine içine işletim sistemini kurup bıraktıktan sonra ortalama memory kullanımı 768 MB ile 1 GB arasındır. İşletim sistemi üzerine appliacation kuruldukça memory kullanımı daha da artar. Ancak maximum kullanılacak miktar virtual machine’e atamış olduğunuz memory ile sınırlıdır. Eğer virtual machine’lere atanan memorylerin hepsi kullanılmaya başlanırsa (bir sebepten dolayı) bu sefer ESXi host üzerinden memory karşılanamayacağı için virtual machine’lerde ballooning oluşacaktır. Bununla alakalı ayrıca bir makale yazacağım.

Memory overcommitment oldukça faydalıdır. Genelde bazı virtual machine’ler daha az memory kullanımı yaparken bazı virtual machine’ler ise çok fazla memory kullanımı yapar. ESXi host boşta bulunan virtual machine’lerin memory’lerini, daha fazla memory isteyen virtual machine’lere paylaştırılır. Memory overcommitment bulunan ortamlarda eğer virtual machine’ler swap veya ballooning operasyonlarında bulunuyor ise, virtual machine’lere özel resource tanımlanması veya share değerlerinin tanımlanması gerekmektedir.

Bir ESXi host’da aşırı memory overcommitment var ise ESXİ host üzerinde yeni bir virtual machine power on etmek istediğinizde power on olmayabilir. Tabi sizin ESXi host’larınız bir cluster’a falan dahil ise bu durum biraz daha farklı olabilir.

Son olarak memory overcommitment durumunda virtual machine’lerden daha iyi performans alınabilmesi için ESXihost üzerinde default olarak memory compression enable durumdadır. Memory Compression konusunu detaylı olarak başka bir makalede inceleyeceğim.

Umarım faydalı olmuştur.

İyi çalışmalar.

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2015, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.