Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

Deel 1. Iwwer CPU

An dësem Artikel wäerte mir iwwer zoufälleg Zougang Erënnerung schwätzen (RAM) Leeschtung Konter an vSphere.
Et schéngt, datt mat Erënnerung alles méi kloer ass wéi mam Prozessor: wann Leeschtungsproblemer op engem VM entstinn, ass et schwéier se net ze bemierken. Awer wa se optrieden, ass et vill méi schwéier mat hinnen ze këmmeren. Awer éischt Saachen éischt.

E bësse vun der Theorie

De RAM vu virtuelle Maschinnen gëtt aus der Erënnerung vum Server geholl, op deem d'VMs lafen. Dëst ass ganz kloer :). Wann de Server RAM ass net genuch fir jiddereen, fänkt ESXi Erënnerung reclamation Techniken ze benotzen. Soss géifen d'VM Betribssystemer mat RAM Zougang Feeler Crash.

ESXi entscheet wéi eng Techniken ze benotzen ofhängeg vun der RAM Belaaschtung:

Erënnerung Status

Border

Actions

héich

400% vun minFree

Nodeems Dir déi iewescht Limit erreecht hutt, ginn grouss Erënnerungssäiten a kleng opgedeelt (TPS funktionnéiert am Standardmodus).

kloer

100% vun minFree

Grouss Erënnerung Säiten sinn an kleng opgedeelt, TPS ass gezwongen.

mëll

64% vun minFree

TPS + Ballon

schwéier

32% vun minFree

TPS + Kompress + Swap

Low

16% vun minFree

Kompriméieren + Swap + Block

Source

minFree ass de RAM néideg fir den Hypervisor ze lafen.

Bis zu ESXi 4.1 inklusiv war minFree par défaut fixéiert - 6% vum Server RAM (de Prozentsaz kéint via Mem.MinFreePct Optioun op ESXi geännert ginn). A spéider Versiounen, wéinst dem Wuesstum vun der Erënnerung op Serveren, huet minFree ugefaang berechent ze ginn op Basis vun der Quantitéit un Erënnerung vum Host, an net als fixe Prozentsazwäert.

De minFree Wäert (Standard) gëtt wéi follegt berechent:

Prozentsaz vun Erënnerung reservéiert fir minFree

Erënnerung Gamme

6%

0-4 GB

4%

4-12 GB

2%

12-28 GB

1%

Rescht Erënnerung

Source

Zum Beispill, fir e Server mat 128 GB RAM ass de MinFree Wäert wéi follegt:
MinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB
Den aktuellen Wäert kann e puer honnert MB ënnerscheeden, ofhängeg vum Server an dem RAM.

Prozentsaz vun Erënnerung reservéiert fir minFree

Erënnerung Gamme

Wäert fir 128 GB

6%

0-4 GB

245,76 MB

4%

4-12 GB

327,68 MB

2%

12-28 GB

327,68 MB

1%

Rescht Erënnerung (100 GB)

1024 MB

Typesch, fir produktiv Stänn, kann nëmmen den Héich Staat als normal ugesi ginn. Fir Testen an Entwécklungsbänke kënnen kloer / mëll Staaten akzeptabel sinn. Wann de RAM am Host manner wéi 64% MinFree ass, da erliewen d'VMs, déi drop lafen, definitiv Leeschtungsproblemer.

An all Staat gi verschidde Gedächtnisreklamatiounstechnike benotzt, ugefaange vun TPS, wat quasi keen Effekt op VM Leeschtung huet, bis Swapping. Ech soen Iech méi iwwer si.

Transparent Page Sharing (TPS). TPS ass, ongeféier geschwat, Deduplication vun RAM Säiten vu virtuelle Maschinnen um Server.

ESXi Sich no identesch virtuell Maschinn RAM Säiten vun engem zielen an d'Hash Zomm vun de Säiten vergläichen, an läscht duplizéiert Säiten, ersetzt se mat Referenze op déi selwecht Säit an der kierperlecher Erënnerung vum Server. Als Resultat gëtt de kierperleche Gedächtnisverbrauch reduzéiert an e puer Gedächtnis Iwwerabonnement ka mat quasi keen Impakt op Leeschtung erreecht ginn.

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung
Source

Dëse Mechanismus funktionnéiert nëmme fir Erënnerungssäiten vu 4 KB an der Gréisst (kleng Säiten). Den Hypervisor probéiert net emol Säiten 2 MB grouss (grouss Säiten) ze deduplizéieren: d'Chance fir identesch Säiten vun dëser Gréisst ze fannen ass net grouss.

Par défaut, allocates ESXi Erënnerung op grouss Säiten. D'Spaltung vu grousse Säiten a kleng Säiten fänkt un wann den High State Schwell erreecht gëtt a gëtt gezwongen wann de Clear State erreecht gëtt (kuckt den Hypervisor Staatstabell).

Wann Dir wëllt datt TPS ufänkt ze schaffen ouni ze waarden op de Host-RAM voll ass, musst Dir de Wäert an Advanced Options ESXi setzen "Mem.AllocGuestLargePage" op 0 (Standard 1). Da gëtt d'Allokatioun vu grousse Gedächtnissäite fir virtuelle Maschinnen ausgeschalt.

Zënter Dezember 2014, an all ESXi Verëffentlechungen, ass TPS tëscht VMs par défaut behënnert, well eng Schwachstelle gouf fonnt, déi theoretesch erlaabt engem VM Zougang zum RAM vun engem aneren VM. Detailer hei. Ech sinn net iwwer Informatioun iwwer d'praktesch Ëmsetzung vun der Ausbeutung vun der TPS Schwachstelle begéint.

TPS Politik gëtt iwwer fortgeschratt Optioun kontrolléiert "Mem.ShareForceSalting" op ESXi:
0 - Inter-VM TPS. TPS funktionnéiert fir Säite vu verschiddene VMs;
1 - TPS fir VMs mat der selwechter "sched.mem.pshare.salt" Wäert an VMX;
2 (Standard) - Intra-VM TPS. TPS funktionnéiert fir Säiten an engem VM.

Et mécht definitiv Sënn fir grouss Säiten auszeschalten an Inter-VM TPS op Testbänken z'aktivéieren. Dëst kann och fir Stänn mat enger grousser Zuel vun ähnlechen VM benotzt ginn. Zum Beispill, op Stänn mat VDI, kann d'Spuer op kierperlech Erënnerung zéng Prozent erreechen.

Erënnerung Ballooning. Ballooning ass net méi sou eng harmlos an transparent Technik fir de VM Betribssystem wéi TPS. Awer wann Dir richteg benotzt, kënnt Dir liewen a souguer mat Ballooning schaffen.

Zesumme mat Vmware Tools gëtt e spezielle Chauffer genannt Balloon Driver (alias vmmemctl) op der VM installéiert. Wann d'Hypervisor fänkt aus kierperlech Erënnerung ze lafen an an de Soft Staat, ESXi freet de VM engem recuperéieren onbenotzt RAM duerch dës Ballon Driver. De Chauffer, ofwiesselnd, funktionnéiert um Betribssystemniveau a freet fräi Erënnerung dovun. Den Hypervisor gesäit wéi eng Säite vu kierperlecher Erënnerung de Ballon Driver besat huet, hëlt Erënnerung vun der virtueller Maschinn a bréngt se zréck an den Host. Et gi keng Probleemer mat der Operatioun vum OS, well um OS Niveau ass d'Erënnerung vum Ballon Driver besat. Par défaut kann de Ballon Driver bis zu 65% vum VM Erënnerung huelen.

Wann VMware Tools net op der VM installéiert sinn oder Ballooning ass behënnert (ech recommandéieren et net, awer et gëtt KB:), den Hypervisor wiesselt direkt op méi streng Technike fir d'Erënnerung ze läschen. Fazit: gitt sécher datt VMware Tools op der VM sinn.

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung
D'Operatioun vum Balloon Driver kann aus dem OS iwwer VMware Tools gepréift ginn.

Erënnerung Kompressioun. Dës Technik gëtt benotzt wann ESXi den Hard Staat erreecht. Wéi den Numm ët seet, probéiert ESXi eng 4KB Säit vum RAM an 2KB ze kompriméieren, an doduerch e bësse Plaz an der kierperlecher Erënnerung vum Server. Dës Technik erhéicht d'Zougangszäit zum Inhalt vu VM RAM Säiten wesentlech, well d'Säit als éischt muss dekompriméiert ginn. Heiansdo kënnen net all Säiten kompriméiert ginn an de Prozess selwer dauert e bëssen Zäit. Dofir ass dës Technik net ganz effektiv an der Praxis.

Erënnerung Tauschen. No enger kuerzer Phase vun Memory Compression, ESXi bal zwangsleefeg (wann d'VMs net op aner Hosten geplënnert sinn oder net ausgeschalt sinn) wiesselt op Swapping. A wann et ganz wéineg Erënnerung lénks ass (Niddereg Staat), da stoppt den Hypervisor och Erënnerungssäiten un de VM ze verdeelen, wat Problemer am Gaascht OS vum VM verursaache kann.

Dëst ass wéi Swapping funktionnéiert. Wann Dir eng virtuell Maschinn aktivéiert, gëtt e Fichier mat enger .vswp Extensioun dofir erstallt. Et ass gläich an der Gréisst vum VM's onreserverte RAM: dëst ass den Ënnerscheed tëscht konfiguréierten a reservéierten Erënnerung. Wann Tauscht leeft, ESXi tauscht virtuell Maschinn Erënnerung Säiten an dësem Fichier a fänkt mat et amplaz vun der kierperlech Erënnerung vum Server ze schaffen. Natierlech, esou "RAM" Erënnerung puer Uerden vun Gréisst méi lues wéi real Erënnerung, och wann der .vswp op séier Stockage ass.

Am Géigesaz zu Ballooning, wann onbenotzt Säiten aus engem VM geholl ginn, mat Tausche Säiten déi aktiv vum OS benotzt ginn oder Uwendungen am VM kënnen op Disk geplënnert ginn. Als Resultat fällt d'Performance vum VM op de Punkt vum Afréiere. De VM funktionnéiert formell an op e Minimum kann et richteg aus dem OS ausgeschalt ginn. Wann Dir Gedold sidd 😉

Wann VMs op Swap gaang sinn, ass dëst eng Noutsituatioun déi am beschten vermeit gëtt wa méiglech.

Basis virtuell Maschinn Erënnerung Leeschtung counters

Also hu mer zum Haaptsaach komm. Fir de Gedächtniszoustand vum VM ze iwwerwaachen, ginn et déi folgend Teller:

aktiv - weist de Betrag vum RAM (KB) deen de VM an der viregter Miessperiod zougitt.

Verwendung - d'selwecht wéi Aktiv, awer als Prozentsaz vum konfiguréierten RAM vum VM. Berechent mat der folgender Formel: aktiv ÷ virtuell Maschinn konfiguréiert Erënnerung Gréisst.
Héich Notzung an Aktiv, respektiv, sinn net ëmmer en Indikator vu VM Performance Probleemer. Wann de VM aggressiv Erënnerung benotzt (op d'mannst Zougang), heescht dat net datt et net genuch Erënnerung ass. Éischter ass dëst e Grond fir ze kucken wat am OS geschitt.
Et gëtt e Standardalarm fir Memory Usage fir VMs:

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

gedeelt - de Betrag vum VM RAM deduplizéiert mat TPS (bannent engem VM oder tëscht VMs).

Gutt - d'Quantitéit vum Host kierperlecht Gedächtnis (KB) dat dem VM zougewisen gouf. Aktivéiert Shared.

Konsuméiert (Grant - Shared) - de Betrag u kierperlecher Erënnerung (KB) déi de VM vum Host verbraucht. Enthält net Shared.

Wann en Deel vum VM Gedächtnis net aus dem physesche Gedächtnis vum Host gëtt, mee vun enger Tauschdatei, oder Erënnerung vum VM duerch de Ballon Driver geholl gëtt, gëtt dëse Betrag net berücksichtegt a Granted and Consumed.
Héich Gewëss a Verbraucht Wäerter si komplett normal. De Betribssystem hëlt lues a lues Erënnerung vum Hypervisor a gëtt et net zréck. Mat der Zäit, an engem aktiv lafende VM, kommen d'Wäerter vun dëse Comptoiren un d'Quantitéit u konfiguréiert Erënnerung un a bleiwen do.

Null - de Betrag vum VM RAM (KB), deen Nullen enthält. Esou Erënnerung gëtt vum Hypervisor als gratis ugesinn a kann un aner virtuelle Maschinnen ginn. Nodeems de Gaascht OS eppes op nulléiert Erënnerung geschriwwen huet, geet et an Consuméiert a geet net zréck.

Reservéiert Overhead - de Betrag vum VM RAM, (KB) reservéiert vum Hypervisor fir VM Operatioun. Dëst ass e klenge Betrag, awer et muss um Host verfügbar sinn, soss fänkt de VM net un.

Balloon - d'Quantitéit vum RAM (KB) geläscht aus dem VM mam Ballon Driver.

Kompriméiert - d'Quantitéit vum RAM (KB) dee kompriméiert gouf.

Tauscht ginn - d'Quantitéit vum RAM (KB), deen, wéinst dem Mangel u kierperlecht Gedächtnis um Server, op Disk geplënnert ass.
Ballon an aner Erënnerung Reclamation Techniken counters sinn null.

Dëst ass wéi d'Grafik ausgesäit mat de Memory counters vun engem normalerweis funktionnéierende VM mat 150 GB RAM.

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

An der Grafik hei drënner huet de VM offensichtlech Probleemer. Ënnert der Grafik kënnt Dir gesinn datt fir dës VM all beschriwwen Technike fir mat RAM ze schaffen benotzt goufen. Ballon fir dëse VM ass vill méi grouss wéi verbraucht. Tatsächlech ass VM méi dout wéi lieweg.

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

ESXTOP

Wéi mat der CPU, wa mir d'Situatioun op dem Host séier beurteelen wëllen, wéi och seng Dynamik mat engem Intervall vu bis zu 2 Sekonnen, sollte mir ESXTOP benotzen.

Den ESXTOP Memory Écran gëtt mam "m" Schlëssel opgeruff a gesäit esou aus (Felder B,D,H,J,K,L,O ausgewielt):

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

Déi folgend Parameter wäerten eis interessant sinn:

Mem overcommit avg - Duerchschnëttswäert vun der Erënnerungsiwwerabonnement am Host fir 1, 5 a 15 Minutten. Wann et iwwer Null ass, ass dat e Grond fir ze kucken wat geschitt, awer net ëmmer en Indikator vu Probleemer.

An Linnen PMEM/MB и VMKMEM/MB - Informatioun iwwer d'physesch Erënnerung vum Server an d'Erënnerung verfügbar fir de VMkernel. Ënnert den interessanten Saachen hei kënnt Dir de minfree Wäert (a MB), de Gaaschtstaat an der Erënnerung (an eisem Fall, héich) gesinn.

An der Schlaang NUMA/MB Dir kënnt d'Verdeelung vum RAM iwwer NUMA Noden (Sockets) gesinn. An dësem Beispill ass d'Verdeelung ongläich, wat am Prinzip net ganz gutt ass.

Déi folgend sinn allgemeng Serverstatistike fir Erënnerungsrecuperatiounstechniken:

PSHARE/MB - dëst sinn TPS Statistiken;

SWAP/MB - Tauscht Benotzungsstatistiken;

ZIP/MB - Erënnerung Säit Kompressioun Statistiken;

MEMCTL/MB - Balloon Driver Benotzungsstatistiken.

Fir eenzel VMs kënne mir un déi folgend Informatioun interesséiert sinn. Ech hunn d'Nimm vun de VMs verstoppt fir d'Publikum net duercherneen ze bréngen :). Wann d'ESXTOP Metrik ähnlech wéi de Konter an vSphere ass, ginn ech de entspriechende Konter.

MEMSZ - Betrag vun Erënnerung konfiguréiert op der VM (MB).
MEMSZ = GRANT + MCTLSZ + SWCUR + onberéiert.

GRANT - Gewennt an MB.

TCHD - Aktiv an MBytes.

MCTL? - ob Ballon Driver op der VM installéiert ass.

MCTLSZ - Ballon zu MB.

MCTLGT - d'Quantitéit vum RAM (MBytes) deen ESXi vum VM duerch de Ballon Driver (Memctl Target) ewechhuelen wëll.

MCTLMAX - déi maximal Quantitéit vun RAM (MBytes) datt ESXi aus engem VM duerch de Ballon Driver ewechzehuelen kann.

SWCUR - den aktuelle Betrag vum RAM (MBytes) deen dem VM aus der Swap Datei zougewisen ass.

S.W.G.T. - de Betrag vum RAM (MBytes) deen ESXi dem VM vun der Swap Datei (Swap Target) wëll ginn.

Dir kënnt och méi detailléiert Informatiounen iwwer d'NUMA Topologie vum VM iwwer ESXTOP kucken. Fir dëst ze maachen, wielt Felder D, G:

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

KLENG - NUMA Noden op deenen de VM läit. Hei kënnt Dir direkt breet vm bemierken, déi net op engem NUMA Node passen.

NRMEM - wéivill Megabytes vun Erënnerung de VM aus dem Remote NUMA Node hëlt.

NLMEM - wéivill Megabytes Erënnerung de VM vum lokalen NUMA Node hëlt.

N%L - Prozentsaz vu VM Erënnerung op der lokaler NUMA Node (wann manner wéi 80%, Leeschtungsproblemer kënnen entstoen).

Erënnerung op der Hypervisor

Wann CPU-Zähler fir en Hypervisor normalerweis net besonnesch interesséiert sinn, da mat der Erënnerung ass d'Situatioun de Géigendeel. Héich Gedächtnisverbrauch op engem VM weist net ëmmer e Leeschtungsproblem un, awer héich Gedächtnisverbrauch op engem Hypervisor ausléist Erënnerungsmanagement Techniken a verursaacht Problemer mat der VM Leeschtung. Dir musst Host Memory Usage Alarm iwwerwaachen a verhënneren datt VMs an Swap kommen.

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

Auswiesselen

Wann e VM am Swap gefaange gëtt, gëtt seng Leeschtung staark reduzéiert. Spure vu Ballon a Kompressioun verschwannen séier nodeems de gratis RAM um Host erschéngt, awer déi virtuell Maschinn ass net presséiert vum Swap op de RAM vum Server zréckzekommen.
Virun ESXi 6.0 war déi eenzeg zouverlässeg a séier Manéier fir e VM aus Swap ze läschen (méi präzis, auszeschalten / op de Container). Ugefaange mat ESXi 6.0, obwuel net ganz offiziell, eng funktionéierend an zouverléisseg Manéier fir e VM aus Swap ze läschen. Op enger vun de Konferenzen konnt ech mat engem vun de VMware Ingenieuren schwätzen, verantwortlech fir CPU Scheduler. Hien huet bestätegt datt d'Methode ganz funktionnéiert a sécher ass. An eiser Erfahrung, do waren och keng Problemer mat et.

Déi aktuell Kommandoe fir e VM aus Swap ze läschen beschriwwen Duncan Epping. Ech wäert déi detailléiert Beschreiwung net widderhuelen, ech ginn just e Beispill vu senger Benotzung. Wéi Dir am Screenshot gesitt, e puer Zäit no der Ausféierung vum spezifizéierte Kommando verschwënnt Swap op der VM.

Analyse vun VM Leeschtung an VMware vSphere. Deel 2: Erënnerung

Rotschléi fir Gestioun RAM op ESXi

Endlech, hei sinn e puer Tipps, déi Iech hëllefen, Problemer mat der VM Leeschtung ze vermeiden wéinst RAM:

  • Vermeiden Iwwerabonnement vum RAM a produktive Stärekéip. Et ass unzeroden ëmmer ~ 20-30% vum fräie Gedächtnis am Cluster ze hunn, sou datt DRS (an den Administrator) Spillraum hunn fir ze manoeuvréieren an VMs net op Swap wärend der Migratioun goen. Vergiesst och net iwwer d'Margin fir Feeler Toleranz. Et ass désagréabel wann, wann ee Server feelt an de VM mat HA nei gestart gëtt, e puer vun de Maschinnen och op Swap goen.
  • An héich konsolidéierten Infrastrukturen, probéiert NET VMs mat Erënnerung méi wéi d'Halschent vum Host Memory ze kreéieren. Dëst wäert erëm hëllefen DRS virtuell Maschinnen iwwer Cluster Serveren ouni Problemer ze verdeelen. Dës Regel ass natierlech net universell :).
  • Opgepasst op Host Memory Usage Alarm.
  • Vergiesst net VMware Tools op der VM z'installéieren an de Ballooning net auszeschalten.
  • Betruecht Inter-VM TPS z'aktivéieren an Grouss Säiten an VDI an Test Ëmfeld auszeschalten.
  • Wann de VM Leeschtungsprobleemer erliewt, kontrolléiert ob et Erënnerung vun engem Remote NUMA Node benotzt.
  • Ewechzehuelen VMs aus Swap sou séier wéi méiglech! Ënner anerem, wann de VM am Swap ass, leid de Späichersystem aus offensichtleche Grënn.

Dat ass alles fir mech iwwer RAM. Drënner sinn Zesummenhang Artikelen fir déi, déi wëlle méi déif goen. Den nächsten Artikel gëtt zu Storaj gewidmet.

Nëtzlech Adressenhttp://www.yellow-bricks.com/2015/03/02/what-happens-at-which-vsphere-memory-state/
http://www.yellow-bricks.com/2013/06/14/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up/
https://www.vladan.fr/vmware-transparent-page-sharing-tps-explained/
http://www.yellow-bricks.com/2016/06/02/memory-pages-swapped-can-unswap/
https://kb.vmware.com/s/article/1002586
https://www.vladan.fr/what-is-vmware-memory-ballooning/
https://kb.vmware.com/s/article/2080735
https://kb.vmware.com/s/article/2017642
https://labs.vmware.com/vmtj/vmware-esx-memory-resource-management-swap
https://blogs.vmware.com/vsphere/2013/10/understanding-vsphere-active-memory.html
https://www.vmware.com/support/developer/converter-sdk/conv51_apireference/memory_counters.html
https://docs.vmware.com/en/VMware-vSphere/6.5/vsphere-esxi-vcenter-server-65-monitoring-performance-guide.pdf

Source: will.com

Setzt e Commentaire