Jak przydziela się pamięć na serwerze ESXi?

17

Mamy serwer ESXi 4.1 z 48 GB pamięci RAM.

Dla każdej maszyny wirtualnej przydzielamy 4 GB pamięci. Ponieważ serwer będzie miał 13 maszyn wirtualnych, mój menedżer uważa, że ​​to źle.

Wyjaśnię im, że ESXi faktycznie sama zarządza pamięcią, ale zapytali mnie, ile pamięci przydzieliłem na sam serwer ESXi.

Nie przydzieliłem żadnych (nawet nie słyszałem o opcji przydzielania pamięci dla samego serwera ESXi).

Jak przydzielana jest pamięć dla serwera ESXi? W jaki sposób nadmiernie alokuje / dystrybuuje pamięć RAM między maszyny wirtualne bez problemu?

Samselvaprabu
źródło

Odpowiedzi:

26

Jest tu o wiele więcej niż tylko ESXi,

  1. Każda maszyna wirtualna zużyje do 4 GB + „narzut”, co jest udokumentowane tutaj . Zależy to od vCPU, + przydzielonej pamięci. Każda maszyna wirtualna zużyje co najmniej 4261,98 MB (4096 + 165,98)
  2. Narzut własny pamięci ESXi, to zależy od sprzętu. Najłatwiejszą opcją jest sprawdzenie użycia pamięci systemowej w kliencie vSphere. Z pamięci pamiętam, że jest to około 1,3 GB, ale jak wspomniano, jest to bardzo zależne od sprzętu.

Wyjaśnienie alokacji pamięci i nadmiernego zaangażowania

Pamiętaj, że hiperwizor nie przydzieli całej pamięci z góry , zależy to od użycia maszyny wirtualnej. Warto jednak zrozumieć, co się stanie, jeśli maszyny wirtualne spróbują przydzielić i wykorzystać całą przydzieloną im pamięć.

Maksymalna liczba hostów VM +, które będzie próbował użyć, wyniesie około, pojemność 55 GB może się różnić

  • 1,3 GB używane przez ESXi
  • 4261,98 MB * 13 używane przez maszyny wirtualne

Należy wziąć pod uwagę inny aspekt, a mianowicie progi pamięci. Domyślnie VMware dąży do uzyskania 6% wolnej pamięci (wysoki próg pamięci). Dlatego 55 GB używanej pamięci należy zmniejszyć do ~ 45 GB

Oznacza to, że host będzie miał około 10 500 MB pamięci, którą musi skądś odzyskać, gdyby maszyny wirtualne wykorzystały przydzieloną pamięć. Istnieją trzy rzeczy, które robi ESX, aby znaleźć dodatkowe 10,5 GB.

Metody odzyskiwania pamięci

  1. Przejrzyste udostępnianie stron
  2. Balonowanie pamięci
  3. Zamiana hiperwizora

Powinieneś przeczytać i zrozumieć Zrozumienie zarządzania zasobami pamięci na serwerze VMware® ESX ™ Server .

W zależności od dużej liczby czynników połączenie wszystkich trzech może / może się zdarzyć na nadmiernie zaangażowanym hoście. Musisz przetestować swoje środowisko i monitorować te wskaźniki, aby zrozumieć wpływ nadmiernego zaangażowania.

Niektóre szorstkie zasady, które warto znać (wszystko w powyższym artykule i innych źródłach).

  1. Przejrzyste udostępnianie stron nie występuje w przypadku maszyn wirtualnych korzystających ze stron 2/4 MB. Po przydzieleniu 4096 MB maszynom wirtualnym z systemem Windows będą one domyślnie używać stron 2/4 MB (zależne od PAE). Tylko pod presją pamięci VMware rozbije duże strony do 4 KB stron, które można udostępnić. TPS polega na używaniu bezczynnych cykli procesora i skanowaniu stron pamięci z określoną częstotliwością. Zwraca pamięć stosunkowo powoli (raczej godzinę niż minuty). Burza rozruchowa oznacza, że ​​TPS ci nie pomoże. Spośród tych trzech ma to najniższy wpływ na wydajność. Więcej z dokumentu,

W systemach wspomaganej sprzętowo wirtualizacji pamięci (na przykład Intel EPT Hardware Assist i AMD RVI Hardware Assist [6]) ESX automatycznie utworzy kopię zapasową fizycznych stron gości z dużymi fizycznymi stronami hosta (2 MB ciągłego obszaru pamięci zamiast 4KB dla zwykłych stron) dla lepsza wydajność dzięki mniejszej liczbie braków TLB. W takich systemach ESX nie będzie współużytkować tych dużych stron, ponieważ: 1) prawdopodobieństwo znalezienia dwóch dużych stron o identycznej zawartości jest niskie, oraz 2) narzut związany z porównywaniem bitów po stronie 2 MB jest znacznie większy niż dla strony 4KB. Jednak ESX nadal generuje skróty dla stron 4KB na każdej dużej stronie. Ponieważ ESX nie będzie zamieniał dużych stron, podczas zamiany hosta, duża strona zostanie podzielona na małe strony, dzięki czemu te wstępnie wygenerowane wartości skrótów mogą zostać użyte do udostępnienia małych stron przed ich zamianą. Krótko mówiąc, nie możemy zaobserwować współdzielenia strony dla systemów wirtualizacji pamięci wspieranych sprzętowo, dopóki pamięć hosta nie zostanie nadmiernie zaangażowana.

  1. Balonowanie rozpoczyna się w następnej kolejności (progi są konfigurowalne, domyślnie dzieje się tak, gdy host ma mniej niż 6% wolnej pamięci (między wysokim a oprogramowaniem). Zainstaluj sterownik i uważaj na aplikacje Java i ogólnie zarządzane . System operacyjny nie ma wglądu w to, co zrobi moduł wyrzucania elementów bezużytecznych, i ostatecznie trafi na strony zamienione na dysk. Często zdarza się, że serwery, na których działają wyłącznie aplikacje Java, wyłączają całkowicie zamianę, aby zagwarantować, że tak się nie stanie. Zajrzyj na stronę 17 vSphere Memory Management, SPECjbb

  2. Zamiana hiperwizora , z trzech metod, jest jedyną, która gwarantuje hiperwizorowi dostęp do „pamięci” w określonym czasie. Będzie to wykorzystane, jeśli 1 i 2 nie dają wystarczającej ilości pamięci, aby pozostać poniżej twardego progu (domyślnie 2% wolnej pamięci). Po przeczytaniu wskaźników wydajności (zrób swoje) zdasz sobie sprawę, że jest to najgorsza z tych trzech metod. Staraj się tego unikać za wszelką cenę, ponieważ wpływ na wydajność będzie bardzo zauważalny w prawie wszystkich zastosowaniach dwucyfrowych wartości procentowych

  3. Jest jeszcze jeden stan, o którym należy pamiętać jako niski (domyślnie 1%). Z instrukcji może to drastycznie obniżyć wydajność,

W rzadkim przypadku, gdy wolna pamięć hosta spada poniżej dolnego progu, hiperwizor kontynuuje odzyskiwanie pamięci poprzez zamianę i kompresję pamięci, a dodatkowo blokuje wykonywanie wszystkich maszyn wirtualnych, które zużywają więcej pamięci niż docelowe alokacje pamięci.

streszczenie

Kluczową kwestią do podkreślenia jest to, że nie można przewidzieć na podstawie oficjalnych dokumentów, jak będzie się zachowywać twoje środowisko.

  1. Ile może ci dać TPS? (Zależy od tego, jak podobne są twoje maszyny wirtualne z ich systemem operacyjnym, dodatkiem Service Pack i uruchomionymi aplikacjami)
  2. Jak szybko maszyny wirtualne przydzielają pamięć? Im szybciej to robią, tym bardziej prawdopodobne jest, że przejdziesz do następnego progu, zanim mniej skuteczny schemat odzyskiwania pamięci utrzyma cię na obecnym progu.
  3. W zależności od zastosowania, każdy schemat odzyskiwania pamięci będzie miał bardzo różny wpływ.

Przetestuj swoje średnie scenariusze, jesteś 95% percentylem, a na koniec maksimum, aby zrozumieć, jak będzie działać Twoje środowisko.


Edytuj 1

Warto dodać, że w przypadku vSphere 4 (lub 4.1 nie można go przywołać) można teraz umieścić zamianę hiperwizora na dysku lokalnym, ale nadal vmotion VM. Jeśli używasz pamięci współdzielonej, zdecydowanie zalecamy, aby domyślnie przenieść plik wymiany hiperwizora na dysk lokalny. Zapewnia to, że gdy jeden host jest pod silną presją pamięci, nie wpływa to na wszystkie inne hosty / maszyny wirtualne vSphere w tej samej współużytkowanej pamięci.

Edytuj 2

Na podstawie komentarzy sprawił, że ESX nie przydziela pamięci pogrubioną czcionką ...

Edytuj 3

Wyjaśniono trochę więcej o progach pamięci.

M Afifi
źródło
1
VMware nie przypisuje pamięci, która nie jest używana; prawdziwym powodem, dla którego działa nadmierne zaangażowanie, jest to, że maszyna wirtualna otrzyma maksymalną ilość pamięci tylko wtedy, gdy o to poprosi . Po przydzieleniu wszystkiego żądania dodatkowej pamięci pochodzą z wymiany.
adapttr
1
Widziałeś ten kawałek przed dodaniem tego komentarza? „Należy pamiętać, że hiperwizor nie przydzieli całej pamięci z góry, zależy to od użycia maszyny wirtualnej. Warto jednak zrozumieć, co się stanie, jeśli maszyny wirtualne spróbują przydzielić i wykorzystać całą przydzieloną pamięć”
M Afifi
Ponieważ był to dość oczywisty jeden z głównych problemów PO (JAK Vmware wyczarowuje pamięć, której NIE MAM?), Powinien był pojawić się wysoko na liście, a nie po namyśle. Wyjaśniasz użycie pamięci wstecz, wyjaśniając odzyskiwanie. Dlaczego ?
Adapttr
Jak to jest wstecz? Odpowiedź mówi: tyle pamięci przydzieliłeś. Nie przydzieli go z góry. Jeśli tak (na podstawie użycia pamięci maszyny wirtualnej), ma to wpływ. Naprawdę nie mogę powiedzieć, że ktoś się tym nie martwi. Jeśli przesadzisz z pamięcią, powinieneś znać wpływ.
M Afifi
4

VMware (i inne technologie wirtualizacji) dzielą zasoby (pamięć, czas procesora, różnego rodzaju operacje we / wy) między maszynami wirtualnymi zgodnie z różnymi algorytmami.

Możliwe jest zawyżanie zasobów, ponieważ nie wszystkie maszyny wirtualne będą używać całego przetwarzania, pamięci lub operacji we / wy, których potrzebują cały czas. Przewodnik zarządzania zasobami VMware jest prawdopodobnie najlepszym miejscem do zapoznania się z możliwościami ESXi.

Możesz także zarządzać efektem algorytmów poprzez ważenie różnych maszyn wirtualnych dla różnych zasobów - np. Możesz przypisać maszynie wirtualnej serwera aplikacji wyższą wagę procesora niż maszynie wirtualnej serwera plików. Jednak ustawienia fabryczne bardzo dobrze poradzą sobie z większością wymagań. W niektórych przypadkach wykonanie tutaj konfiguracji wystarczy, aby umiejscowić menedżerów, którzy nie do końca ją rozumieją, ale oczywiście bądź ostrożny i przeczytaj dokumentację swojej wersji VMware i zrozum, co robisz. Jeśli Twój menedżer nie potrzebuje dalszego umiejscowienia, skorzystaj z ustawień domyślnych.

Pamiętaj, że nadmierne zaangażowanie nie zawsze jest dobrym pomysłem, szczególnie jeśli wykonałeś wirtualizację na jednym serwerze. Powinieneś monitorować wykorzystanie zasobów w swojej posiadłości ESXi i, jeśli to konieczne, dodać dodatkowe hosty / zasoby, jeśli często zużywasz jeden lub więcej zasobów.

dunxd
źródło
2

Niech Twoja instalacja VMWare ESXi sobie z tym poradzi. Możesz przeceniać zasoby pamięci RAM w systemach VMWare ze względu na użycie technik balonowania, kompresji i deduplikacji pamięci .

Jeśli maszyny wirtualne korzystają z podobnego systemu operacyjnego, istnieją pewne oszczędności. Pamiętaj, aby włączyć narzędzia VMWare w maszynach wirtualnych gości, aby w pełni korzystać z tych funkcji.

ewwhite
źródło