VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

1. Daļa. Par CPU

Šajā rakstā runāsim par RAM (operatīvās atmiņas) veiktspējas skaitītājiem vSphere.
Izskatās, ka ar atmiņu viss ir skaidrāk nekā ar procesoru: ja VM ir veiktspējas problēmas, tās ir grūti nepamanīt. Tomēr, ja tās rodas, ar tām tikt galā ir daudz grūtāk. Bet par visu pēc kārtas.

Nedaudz teorijas

Virtuālo maŔīnu operatÄ«vā atmiņa tiek ņemta no servera atmiņas, kurā darbojas VM. Tas ir visai acÄ«mredzami:). Ja serverim nepietiek operatÄ«vās atmiņas visiem, kam tā nepiecieÅ”ama, ESXi sāk izmantot operatÄ«vās atmiņas patēriņa optimizācijas tehnikas (memory reclamation techniques). Pretējā gadÄ«jumā operētājsistēmas VM sabrukt ar piekļuves kļūdām.

Kādas tehnikas izmantot, ESXi lemj atkarībā no operatīvās atmiņas noslodzes:

Atmiņas stāvoklis

Robeža

Darbības

High

400% no minFree

Pēc augŔējās robežas sasniegÅ”anas lielās atmiņas lapas tiek sadalÄ«tas mazākās (TPS darbojas standarta režīmā).

Clear

100% no minFree

Lielās atmiņas lapas tiek sadalītas mazākās, TPS darbojas piespiedu kārtā.

Mīksts

64% no minFree

TPS + Balloon

Ciets

32% no minFree

TPS + Compress + Swap

Zems

16% no minFree

Compress + Swap + Block

Avots

minFree — tā ir operatÄ«vā atmiņa, kas nepiecieÅ”ama hipervizora darbÄ«bai.

LÄ«dz ESXi 4.1 ieskaitot minFree pēc noklusējuma bija fiksēts — 6% no servera operatÄ«vās atmiņas apjoma (procentu varēja mainÄ«t, izmantojot opciju Mem.MinFreePct ESXi). Vēlākajās versijās, palielinoties servera atmiņas apjomiem, minFree sāka aprēķināt, pamatojoties uz hosta atmiņas apjomu, nevis kā fiksētu procentu vērtÄ«bu.

MinFree (pēc noklusējuma) vērtÄ«ba tiek aprēķināta Ŕādi:

Atmiņas procents, kas rezervēts minFree

Atmiņas diapazons

6%

0-4 GB

4%

4-12 GB

2%

12-28 GB

1%

Atlikusī atmiņa

Avots

Piemēram, serverim ar 128 GB RAM minFree vērtÄ«ba bÅ«s Ŕāda:
MinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB
Faktiskā vērtÄ«ba var atŔķirties par pāris simtiem MB, tas atkarÄ«gs no servera un operatÄ«vās atmiņas.

Atmiņas procents, kas rezervēts minFree

Atmiņas diapazons

Vērtība 128 GB

6%

0-4 GB

245,76 MB

4%

4-12 GB

327,68 MB

2%

12-28 GB

327,68 MB

1%

Atlikusī atmiņa (100 GB)

1024 MB

Parasti Augsta stāvokļa sasniegÅ”ana ir normāla prasÄ«ba produktÄ«viem stendiem. TestēŔanas un attÄ«stÄ«bas stendiem pieņemami var bÅ«t Clear/Soft stāvokļi. Ja hostā ir palicis mazāk par 64% MinFree operatÄ«vās atmiņas, tad VM, kas uz tā darbojas, noteikti novēros veiktspējas problēmas.

Katram stāvoklim tiek izmantotas noteiktas atmiņas atbrÄ«voÅ”anas tehnikas, sākot ar TPS, gandrÄ«z neradot ietekmi uz VM veiktspēju, un beidzot ar Swapping. Par to pastāstīŔu sÄ«kāk.

Transparent Page Sharing (TPS). TPS bÅ«tÄ«bā ir virtuālo maŔīnu operatÄ«vās atmiņas lapu deduplicēŔana uz servera.

ESXi meklē identiskas virtuālo maŔīnu operatÄ«vās atmiņas lapas, aprēķinot un salÄ«dzinot lapu hash summas, un izdzēŔ dublikātus, aizstājot tos ar atsaucēm uz vienu un to paÅ”u fiziskās atmiņas lapu serverÄ«. Rezultātā fiziskās atmiņas patēriņŔ samazinās, un ir iespējams sasniegt zināmu pārmaksu attiecÄ«bā uz atmiņu praktiski bez veiktspējas samazināŔanās.

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa
Avots

Å is mehānisms darbojas tikai 4 KB (mazo lapu) atmiņas lapām. 2 MB (lielo lapu) izmēra lapas hipervizors pat necenÅ”as deduplicēt: iespēja atrast identiskas lapas Ŕāda izmēra ir zema.

Pēc noklusējuma ESXi pieŔķir atmiņu lielajām lapām. Lielo lapu sadalīŔana mazajās sākas, sasniedzot augsto stāvokļa slieksni, un notiek piespiedu kārtā, kad tiek sasniegts Clear stāvoklis (skatÄ«t hipervizora stāvokļu tabulu).

Ja vēlaties, lai TPS uzsāktu darbu, negaidot, kad hosta operatÄ«vā atmiņa tiks pilnÄ«bā aizpildÄ«ta, Advanced Options ESXi jāiestata vērtÄ«ba ā€œMem.AllocGuestLargePageā€ uz 0 (noklusējums 1). Tad lielo atmiņas lapu pieŔķirÅ”ana virtuālajām maŔīnām tiks atspējota.

KopÅ” 2014. gada decembra visās ESXi laidiena versijās TPS starp VM pēc noklusējuma ir atspējota, jo tika atrasta ievainojamÄ«ba, kas teorētiski ļauj piekļūt vienas VM operatÄ«vajai atmiņai no citas VM. SÄ«kāka informācija Å”eit. Informācija par praktisko TPS ievainojamÄ«bas izmantoÅ”anu man nav bijusi pieejama.

TPS politika tiek kontrolēta, izmantojot papildu opciju ā€œMem.ShareForceSaltingā€ ESXi:
0 — Inter-VM TPS. TPS darbojas dažādu VM lapām;
1 – TPS VM ar vienādu ā€œsched.mem.pshare.saltā€ vērtÄ«bu VMX;
2 (noklusējums) – Intra-VM TPS. TPS darbojas lapām VM iekÅ”ienē.

Noteikti ir jēga izslēgt lielas lapas un ieslēgt Inter-VM TPS testēŔanas stendos. To var izmantot arÄ« stendos ar lielu vienveidÄ«gu VM skaitu. Piemēram, stendos ar VDI fiziskās atmiņas ietaupÄ«jums var sasniegt desmitiem procentu.

Atmiņas balonēŔana. BalonēŔana vairs nav tik nekaitÄ«ga un caurspÄ«dÄ«ga VM operētājsistēmai kā TPS. Bet ar pareizu piemēroÅ”anu balonēŔana var bÅ«t droÅ”i lietojama un pat strādāt.

Kopā ar VMware Tools VM tiek instalēts Ä«paÅ”s draiveris, ko sauc par Balloon Driver (tāpat kā vmmemctl). Kad hipervizoram sāk trÅ«kt fiziskās atmiņas un tas nonāk Soft stāvoklÄ«, ESXi lÅ«dz VM atgriezt neizmantoto RAM caur Å”o Balloon Driver. Draiveris darbojas operētājsistēmas lÄ«menÄ« un pieprasa brÄ«vo atmiņu no tās. Hipervizors redz, kuras fiziskās atmiņas lapas ir aizņēmis Balloon Driver, atņem atmiņu no virtuālās maŔīnas un atgriež to viesu sistēmai. Problēmas ar OS darbÄ«bu nerodas, jo operētājsistēmas lÄ«menÄ« atmiņa tiek aizņemta ar Balloon Driver. Noklusējuma iestatÄ«jumos Balloon Driver var atņemt lÄ«dz 65% no VM atmiņas.

Ja VM nav uzstādÄ«ti VMware Tools vai balonēŔana ir atspējota (neiesaku, bet ir arÄ« tāda iespēja KB:), hipervizors nekavējoties pāriet pie stingrākām atmiņas atņemÅ”anas tehnikām. Secinājums: pārliecinieties, ka VMware Tools VM ir uzstādÄ«ti.

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa
BalonēŔanas draivera darbÄ«bu var pārbaudÄ«t no OS caur VMware Tools..

Atmiņas saspieÅ”ana. Å Ä« tehnika tiek izmantota, kad ESXi nonāk Hard stāvoklÄ«. Kā norādÄ«ts nosaukumā, ESXi cenÅ”as saspiest 4 Kb atmiņas lapas lÄ«dz 2 Kb, tādējādi atbrÄ«vojot nedaudz vietas fiziskajā atmiņā. Å Ä« tehnika ievērojami palielina piekļuves laiku atmiņas lapu saturam, jo lapa iepriekÅ” jāsasprindzina. Dažreiz nav iespējams saspiest visas lapas, un pats process prasa zināmu laiku. Tādēļ Ŕī tehnika praksē nav ļoti efektÄ«va.

Atmiņas apmaiņa. Pēc Ä«sa atmiņas saspieÅ”anas fāzes ESXi praktiski neizbēgami (ja VM nav pārvietoti uz citām viesu sistēmām vai nav izslēgti) pāriet pie apmaiņas. Un, ja atmiņas palicis ļoti maz (zems stāvoklis), hipervizors arÄ« pārstāj pieŔķirt VM atmiņas lapas, kas var radÄ«t problēmas viesu OS VM.

Šādi darbojas Swapping. Ieslēdzot virtuālo maŔīnu, tiek izveidots fails ar paplaÅ”inājumu .vswp. Tā izmērs ir vienāds ar virtuālās maŔīnas neietekmēto operatÄ«vo atmiņu: tas ir starpÄ«ba starp konfigurēto un rezervēto atmiņu. Darbojoties Swapping procesā, ESXi iznāk atmiņas lapas no virtuālās maŔīnas Å”ajā failā un sāk strādāt ar to vietējo servera fizisko atmiņu. Protams, Ŕāda 'operatÄ«vā' atmiņa ir vairākas reizes lēnāka par Ä«sto, pat ja .vswp atrodas uz ātrās krātuves.

AtŔķirÄ«bā no Ballooning, kad VM izņem neizmantotās lapas, Swapping procesā uz diska var pārvietoties lapas, kuras aktÄ«vi izmanto operētājsistēma vai lietojumprogrammas iekÅ” VM. Rezultātā VM veiktspēja samazinās lÄ«dz pat sasalÅ”anai. VM formāli darbojas, un to vismaz var pareizi izslēgt no OS. Ja esat pacietÄ«gs šŸ˜‰

Ja VM ir devies Swap — tas ir neparasts stāvoklis, kuru labāk novērst.

Galvenie virtuālās maŔīnas atmiņas veiktspējas skaitÄ«tāji

T mēs esam nonākuÅ”i pie galvenā. Lai uzraudzÄ«tu atmiņas stāvokli VM, ir Ŕādi skaitÄ«tāji:

AktÄ«vs — rāda operatÄ«vās atmiņas apjomu (KB), uz kuru VM ir piekļuvis iepriekŔējā mērÄ«jumu periodā.

Usage — tas pats, kas Active, bet procentos no konfigurētās virtuālās maŔīnas operatÄ«vās atmiņas. Aprēķināts pēc Ŕādas formulas: active Ć· virtuālās maŔīnas konfigurētās atmiņas izmērs.
Augsts Usage un Active, attiecīgi, ne vienmēr norāda uz VM veiktspējas problēmām. Ja VM aktīvi izmanto atmiņu (kā minimums, piekļūst tai), tas nenozīmē, ka atmiņa trūkst. Drīzāk tas ir pamats aplūkot, kas notiek OS.
Ir standarta trauksme par atmiņas izmantoÅ”anu VM:

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

Koplietojamais — virtuālās maŔīnas operatÄ«vās atmiņas apjoms, kas ir deduplicēts ar TPS (iekÅ” VM vai starp VM).

Granted — fiziskās atmiņas apjoms uz saimniekdatortehnika (KB), kas ir pieŔķirts VM. Ietver Shared.

Consumed (Granted — Shared) — fiziskās atmiņas apjoms (KB), ko VM patērē no saimniekdatortehnika. Neietver Shared.

Ja daļa no VM atmiņas tiek pieŔķirta ne no fiziskās atmiņas saimniekdatortehnika, bet no swap faila vai atmiņa tiek izņemta no VM caur Balloon Driver, Å”is apjoms nav iekļauts Granted un Consumed.
Augsti Granted un Consumed rādītāji ir pavisam normāli. Operētājsistēma pakāpeniski atbrīvo atmiņu no hipervizora un neatgriež to atpakaļ. Laika gaitā aktīvās VM rādītāju vērtības tuvojas konfigurētās atmiņas apjomam un tur paliek.

Nulle — VM operatÄ«vās atmiņas apjoms (KB), kurÅ” satur nulles. Šāda atmiņa tiek uzskatÄ«ta par brÄ«vu hipervizora un var tikt pieŔķirta citām virtuālajām maŔīnām. Pēc tam, kad viesu OS ir pierakstÄ«jusi kaut ko nosēdinātajā atmiņā, tā pāriet uz Consumed un vairs neatgriežas.

Rezervēta papildu atmiņa — VM operatÄ«vās atmiņas apjoms (KB), ko hipervizors rezervējis, lai nodroÅ”inātu VM darbÄ«bu. Tas ir neliels apjoms, bet tam obligāti jābÅ«t pieejamam hostā, citādi VM nesāksies.

Balloon — operatÄ«vās atmiņas apjoms (KB), kas atņemts no VM, izmantojot Balloon Driver.

Saspiests — operatÄ«vās atmiņas apjoms (KB), kuru izdevās saspiest.

Mijlocināts — operatÄ«vās atmiņas apjoms (KB), kurÅ” fiziskās atmiņas trÅ«kuma dēļ pārcēlies uz disku.
Balloon un pārējie atmiņas atgūŔanas rādÄ«tāji ir vienādi ar nulli.

Tā izskatās grafika ar rādÄ«tājiem par normāli strādājoÅ”u VM ar 150 GB operatÄ«vo atmiņu.

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

Å ajā grafikā VM ir acÄ«mredzamas problēmas. ApakŔā redzams, ka Å”ai VM tika izmantotas visas aprakstÄ«tās operatÄ«vās atmiņas tehnikas. Balloon Å”ai VM ir daudz lielāks nekā Consumed. PatiesÄ«bā VM ir drÄ«zāk mirusi nekā dzÄ«va.

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

ESXTOP

Tāpat kā ar CPU, ja vēlamies ātri novērtēt situāciju hostā, kā arī tās dinamiku ar intervālu līdz 2 sekundēm, ir vērts izmantot ESXTOP.

ESXTOP ekrāns par atmiņu tiek izsaukts, nospiežot taustiņu ā€žmā€ un izskatās Ŕādi (izvēlēti B,D,H,J,K,L,O lauki):

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

Mums interesējoÅ”ie parametri bÅ«s Ŕādi:

Mem overcommit avg — vidējais atmiņas pārrakstīŔanas lÄ«menis uz hosta pēdējās 1, 5 un 15 minÅ«tēs. Ja tas ir virs nulles, tas ir iemesls, lai paskatÄ«tos, kas notiek, bet ne vienmēr liecina par problēmām.

Rindās PMEM/MB un VMKMEM/MB — informācija par servera fizisko atmiņu un VMkernel pieejamo atmiņu. Interesantākais Å”eit ir minfree vērtÄ«ba (MB), kā arÄ« stāvoklis atmiņā (mÅ«su gadÄ«jumā augsts).

Rindā NUMA/MB var redzēt operatīvās atmiņas sadalījumu pa NUMA mezgliem (soketiem). Šajā piemērā sadalījums nav vienmērīgs, kas principā nav ļoti labi.

Tālāk ir sniegta vispārējā statistika par serveri, izmantojot atmiņas atgūŔanas tehnoloÄ£ijas:

PSHARE/MB — Ŕī ir TPS statistika;

SWAP/MB — Swap lietoÅ”anas statistika;

ZIP/MB — atmiņas lapu saspieÅ”anas statistika;

MEMCTL/MB — Balloon Driver lietoÅ”anas statistika.

MÅ«s var interesēt Ŕāda informācija par atseviŔķām VM. VM nosaukumus esmu noslēpis, lai nemanÄ«tu auditoriju :). Ja ESXTOP metrika ir lÄ«dzÄ«ga skaitÄ«tājam vSphere, sniedzu attiecÄ«go skaitÄ«tāju.

MEMSZ — atmiņas apjoms, kas konfigurēts VM (MB).
MEMSZ = GRANT + MCTLSZ + SWCUR + untouched.

GRANT — Granted MB.

TCHD — Active MB.

MCTL? — vai VM ir uzstādÄ«ts Balloon Driver.

MCTLSZ — Balloon MB.

MCTLGT — operatÄ«vās atmiņas apjoms (MB), ko ESXi vēlas izņemt no VM, izmantojot Balloon Driver (Memctl Target).

MCTLMAX — maksimālais operatÄ«vās atmiņas apjoms (MB), ko ESXi var izņemt no VM, izmantojot Balloon Driver.

SWCUR — paÅ”reizējais operatÄ«vās atmiņas apjoms (MB), kas pieŔķirts VM no Swap faila.

SWGT — operatÄ«vās atmiņas apjoms (MB), ko ESXi vēlas pieŔķirt VM no Swap faila (Swap Target).

Arī, izmantojot ESXTOP, var skatīt detalizētāku informāciju par VM NUMA topoloģiju. Lai to izdarītu, jāizvēlas lauki D,G:

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

NHN – NUMA mezgli, kur atrodas VM. Å eit ir uzreiz pamanāmas platas VM, kuras neietilpst vienā NUMA mezglā.

NRMEM – cik megabaitus atmiņas VM ņem no attālā NUMA mezgla.

NLMEM – cik megabaitus atmiņas VM ņem no vietējā NUMA mezgla.

N%L – procentuālais VM atmiņas apjoms vietējā NUMA mezglā (ja mazāk par 80%, var rasties veiktspējas problēmas).

Atmiņa hipervizorā

Ja CPU skaitÄ«tāji hipervizorā parasti nesniedz Ä«paÅ”u interesi, tad ar atmiņu situācija ir pretēja. Augsta atmiņas izmantoÅ”ana VM ne vienmēr norāda uz veiktspējas problēmu, bet augsta atmiņas izmantoÅ”ana hipervizorā tieÅ”i aktivizē atmiņas pārvaldīŔanas tehnikas un izraisa VM veiktspējas problēmas. Jāuzmanās par Host Memory Usage trauksmēm un jārÅ«pējas, lai VM nenonāktu Swap.

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

Unswap

Ja VM nonāk Swap, tās veiktspēja strauji samazinās. Ballooning un saspieÅ”anas pēdas ātri izzÅ«d, kad uz hosta parādās brÄ«va operatÄ«vā atmiņa, taču virtualizācijas maŔīna pavisam nesteidzas atgriezties no Swap uz servera operatÄ«vo atmiņu.
LÄ«dz ESXi 6.0 versijai vienÄ«gais uzticamais un ātrais veids, kā izvest VM no Swap, bija restartēŔana (ja precÄ«zāk, konteineru izslēgÅ”ana/ieslēgÅ”ana). Sākot ar ESXi 6.0, parādÄ«jās, kaut arÄ« ne pavisam oficiāls, tomēr darboties spējÄ«gs un uzticams veids, kā izvest VM no Swap. Vienā no konferences man izdevās sazināties ar vienu no VMware inženieriem, kurÅ” atbild par CPU Scheduler. ViņŔ apstiprināja, ka Å”is veids ir pavisam funkcionāls un droÅ”s. MÅ«su pieredzē ar to nav konstatētas problēmas.

Faktiski komandas VM izveÅ”anai no Swap aprakstÄ«ja Duncan Epping. Negribu atkārtot detalizētu aprakstu, vienkārÅ”i sniegÅ”u piemēru tās izmantoÅ”anai. Kā redzams ekrānŔāviņā, pēc noteiktā komandu izpildes kādu laiku pēc tam Swap uz VM pazÅ«d.

VM veiktspējas analīze VMware vSphere. 2. daļa: Atmiņa

Padomi operatīvās atmiņas pārvaldībai ESXi

Pēdējā brÄ«dÄ« sniegÅ”u dažus padomus, kas palÄ«dzēs jums izvairÄ«ties no VM veiktspējas problēmām saistÄ«bā ar operatÄ«vo atmiņu:

  • Nepieļaujiet pārsniegÅ”anu operatÄ«vajā atmiņā produktÄ«vās klasteros. Vēlams vienmēr saglabāt ~20-30% brÄ«vas atmiņas klasterÄ«, lai DRS (un administratoram) bÅ«tu manevra vieta, un migrējot VM, tās nesanāktu Swap. Tāpat neaizmirstiet par rezervi kļūmes izturÄ«bai. NepatÄ«kami, ja, stāvot vienam serverim ārpus darbÄ«bas un restartējot VM, izmantojot HA, daļa maŔīnu vēl joprojām nonāk Swap.
  • Augstas konsolidācijas infrastruktÅ«rās cenÅ”ieties NEIZVEIDOT VM ar atmiņu, kas pārsniedz pusi no hosta atmiņas. Tas atkal palÄ«dzēs DRS bez problēmām izkliedēt virtuālās maŔīnas pa klastera serveriem. Å is noteikums, protams, nav universāls :)
  • Uzmanieties no Host Memory Usage Alarm.
  • Neaizmirstiet instalēt VMware Tools uz VM un neizslēdziet Ballooning.
  • Apsveriet iespēju ieslēgt Inter-VM TPS un izslēgt Large Pages VDI vidēs un testēŔanas vidēs.
  • Ja VM piedzÄ«vo veiktspējas problēmas, pārbaudiet, vai tā neizmanto atmiņu no attālinātā NUMA mezgla.
  • Izvediet VM no Swap pēc iespējas ātrāk! Turklāt, ja VM ir Swap, acÄ«mredzamu iemeslu dēļ cieÅ” arÄ« uzglabāŔanas sistēma.

Uz Å”o brÄ«di man viss par operatÄ«vo atmiņu. Zemāk ir raksti par tēmu tiem, kas vēlas iedziļināties detaļās. Nākamais raksts bÅ«s veltÄ«ts uzglabāŔanai.

Noderīgas saiteshttp://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

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster