Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

Део 1. О ЦПУ-у

У овом чланку ћемо говорити о бројачима перформанси меморије са случајним приступом (РАМ) у вСпхере.
Чини се да је са меморијом све јасније него са процесором: ако ВМ има проблема са перформансама, тешко их је не приметити. Али ако се појаве, много је теже носити се с њима. Али прво ствари.

Мало теорије

РАМ виртуелних машина се узима из меморије сервера на коме се покрећу ВМ. Сасвим је очигледно :). Ако РАМ сервера није довољна за све, ЕСКСи почиње да користи технике обнављања меморије како би оптимизовао потрошњу РАМ-а. У супротном, ВМ оперативни системи би се срушили са грешкама у приступу РАМ-у.

Које технике користити ЕСКСи одлучује у зависности од оптерећења РАМ-а:

Статус меморије

граница

Активност

висок

400% минБесплатно

Након достизања горње границе, велике меморијске странице се деле на мале (ТПС ради у стандардном режиму).

јасно

100% минБесплатно

Велике меморијске странице су разбијене на мале, ТПС је приморан да ради.

Мек

64% минБесплатно

ТПС + балон

Тежак

32% минБесплатно

ТПС + Цомпресс + Свап

низак

16% минБесплатно

Цомпресс + Свап + Блоцк

Извор

минФрее је РАМ потребна за рад хипервизора.

Пре ЕСКСи 4.1 укључујући, минФрее је био фиксно подразумевано - 6% РАМ-а сервера (проценат се могао променити преко опције Мем.МинФрееПцт на ЕСКСи). У каснијим верзијама, због повећања величине меморије на серверима, минФрее је почео да се рачуна на основу количине меморије хоста, а не као фиксни проценат.

МинФрее (подразумевана) вредност се израчунава на следећи начин:

Проценат меморије резервисан за минФрее

Распон меморије

6%

0-4 ГБ

4%

4-12 ГБ

2%

12-28 ГБ

1%

Преостало памћење

Извор

На пример, за сервер са 128 ГБ РАМ-а, МинФрее вредност би била:
МинФрее = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 МБ = 1,88 ГБ
Стварна вредност се може разликовати за неколико стотина МБ, зависи од сервера и РАМ-а.

Проценат меморије резервисан за минФрее

Распон меморије

Вредност за 128 ГБ

6%

0-4 ГБ

245,76 МБ

4%

4-12 ГБ

327,68 МБ

2%

12-28 ГБ

327,68 МБ

1%

Преостала меморија (100 ГБ)

1024 МБ

Обично се за продуктивне састојине само високо стање може сматрати нормалним. За тестне и развојне клупе, Цлеар/Софт стања могу бити прихватљива. Ако је РАМ на хосту мањи од 64% МинФрее, онда ВМ-ови који раде на њему дефинитивно имају проблема са перформансама.

У сваком стању се примењују одређене технике обнављања меморије, почевши од ТПС-а, који практично не утиче на перформансе ВМ-а, па до Свап-а. Рећи ћу вам више о њима.

Транспарентно дељење страница (ТПС). ТПС је, грубо говорећи, дедупликација страница меморије виртуелне машине на серверу.

ЕСКСи тражи идентичне странице РАМ-а виртуелне машине тако што броји и упоређује хеш збир страница и уклања дупликате страница, замењујући их везама до исте странице у физичкој меморији сервера. Као резултат, потрошња физичке меморије је смањена и може се постићи извесна прекомерна претплата меморије уз мало или никакво смањење перформанси.

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање
Извор

Овај механизам ради само за меморијске странице од 4 КБ (мале странице). Хипервизор чак ни не покушава да дедупира странице од 2 МБ (велике странице): шанса да се пронађу идентичне странице ове величине није велика.

Подразумевано, ЕСКСи додељује меморију великим страницама. Разбијање великих страница на мале странице почиње када се достигне праг високог стања и намеће се када се достигне стање Цлеар (погледајте табелу стања хипервизора).

Ако желите да ТПС почне да ради без чекања да се хост РАМ попуни, у Адванцед Оптионс ЕСКСи морате да подесите вредност „Мем.АллоцГуестЛаргеПаге“ на 0 (подразумевано 1). Тада ће додела великих меморијских страница за виртуелне машине бити онемогућена.

Од децембра 2014. године, у свим издањима ЕСКСи-а, ТПС између ВМ-а је подразумевано онемогућен, пошто је откривена рањивост која теоретски омогућава приступ са једне ВМ РАМ-у друге ВМ. Детаљи овде. Нисам наишао на информације о практичној примени искоришћавања ТПС рањивости.

ТПС политика се контролише преко напредне опције “Мем.СхареФорцеСалтинг” на ЕСКСи:
0 - Интер-ВМ ТПС. ТПС ради за странице различитих ВМ-ова;
1 – ТПС за ВМ са истом вредношћу „сцхед.мем.псхаре.салт“ у ВМКС-у;
2 (подразумевано) - Интра-ВМ ТПС. ТПС ради за странице унутар ВМ-а.

Дефинитивно има смисла искључити велике странице и укључити Интер-ВМ ТПС на тестним столовима. Може се користити и за штандове са великим бројем ВМ истог типа. На пример, на штандовима са ВДИ, уштеде у физичкој меморији могу достићи десетине процената.

памћење балон. Балонирање више није тако безопасна и транспарентна техника за ВМ оперативни систем као ТПС. Али уз правилну примену, можете живети, па чак и радити са балоном.

Заједно са Вмваре Тоолс, посебан драјвер под називом Баллоон Дривер (ака вммемцтл) је инсталиран на ВМ. Када хипервизору почне да понестаје физичке меморије и уђе у Софт стање, ЕСКСи тражи од ВМ-а да поврати неискоришћену РАМ меморију преко овог балон драјвера. Драјвер, заузврат, ради на нивоу оперативног система и од њега захтева слободну меморију. Хипервизор види које странице физичке меморије је Балон Дривер заузео, узима меморију са виртуелне машине и враћа је хосту. Нема проблема са радом ОС-а, јер на нивоу ОС-а меморију заузима балон драјвер. Балон драјвер подразумевано може да заузме до 65% ВМ меморије.

Ако ВМваре Тоолс нису инсталирани на ВМ или је балонирање онемогућено (не препоручујем, али постоје KB:), хипервизор одмах прелази на строже технике уклањања меморије. Закључак: проверите да ли су ВМваре алати на ВМ-у.

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање
Рад балон драјвера се може проверити из ОС-а преко ВМваре Тоолс-а.

компресија меморије. Ова техника се користи када ЕСКСи достигне Хард стање. Као што назив имплицира, ЕСКСи покушава да смањи страницу од 4 КБ РАМ-а у 2 КБ и тако ослободи мало простора на физичкој меморији сервера. Ова техника значајно повећава време приступа садржају страница ВМ РАМ-а, пошто се страница прво мора декомпримовати. Понекад се не могу све странице компримовати и сам процес траје неко време. Због тога ова техника није веома ефикасна у пракси.

замена меморије. Након кратке фазе компресије меморије, ЕСКСи ће скоро неизбежно (ако ВМ нису отишли ​​на друге хостове или искључени) прећи на замену. А ако је остало веома мало меморије (ниско стање), онда хипервизор такође престаје да додељује меморијске странице ВМ-у, што може да изазове проблеме у гостујућем ОС-у ВМ-а.

Ево како Замена функционише. Када укључите виртуелну машину, за њу се креира датотека са екстензијом .всвп. По величини је једнака нерезервисаној РАМ меморији ВМ-а: то је разлика између конфигурисане и резервисане меморије. Када је Замена покренута, ЕСКСи учитава странице меморије виртуелне машине у ову датотеку и почиње да ради са њом уместо са физичком меморијом сервера. Наравно, таква „оперативна“ меморија је неколико редова величине спорија од стварне, чак и ако .всвп лежи на брзој меморији.

За разлику од балонирања, када се неискоришћене странице преузму из ВМ-а, са заменом, странице које активно користи ОС или апликације унутар ВМ-а могу да се преместе на диск. Као резултат тога, перформансе ВМ-а падају до тачке замрзавања. ВМ формално ради и барем се може исправно онемогућити из ОС-а. Ако сте стрпљиви 😉

Ако су ВМ-ови отишли ​​у Свап, ово је ненормална ситуација, коју је најбоље избећи ако је могуће.

Кључни бројачи перформанси ВМ меморије

Дакле, дошли смо до главне тачке. За праћење стања меморије у ВМ-у постоје следећи бројачи:

Активан — приказује количину РАМ-а (КБ) којој је ВМ имао приступ у претходном периоду мерења.

Употреба - исто као Ацтиве, али као проценат конфигурисане РАМ меморије ВМ-а. Израчунава се коришћењем следеће формуле: активна ÷ величина меморије конфигурисане виртуелне машине.
Висока употреба и Активно, респективно, нису увек индикатори проблема са перформансама ВМ. Ако ВМ агресивно користи меморију (барем јој приступи), то не значи да нема довољно меморије. Тачније, то је прилика да се види шта се дешава у ОС-у.
Постоји стандардни аларм за коришћење меморије за ВМ:

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

схаред - количина ВМ РАМ-а дедуплицираног коришћењем ТПС-а (унутар ВМ-а или између ВМ-а).

Одобрено - количина физичке меморије домаћина (КБ) која је дата ВМ-у. Инцлудес Схаред.

Конзумирано (Одобрено – заједничко) – количина физичке меморије (КБ) коју ВМ троши од хоста. Не укључује Схаред.

Ако је део ВМ меморије дат не из физичке меморије хоста, већ из свап датотеке, или је меморија узета из ВМ-а преко Балон драјвера, овај износ се не узима у обзир у Одобрено и Потрошено.
Високе вредности одобрене и потрошене су сасвим нормалне. Оперативни систем постепено узима меморију од хипервизора и не враћа је. Временом, у активном ВМ-у, вредности ових бројача се приближавају количини конфигурисане меморије и остају тамо.

Нула — количина ВМ РАМ-а (КБ), која садржи нуле. Такву меморију хипервизор сматра слободном и може се дати другим виртуелним машинама. Након што је гостујући ОС нешто написао у нулту меморију, он иде у Цонсумед и не враћа се назад.

Резервисано изнад главе — количина ВМ РАМ-а, (КБ) резервисана од стране хипервизора за рад ВМ. Ово је мала количина, али мора бити доступна на хосту, иначе се ВМ неће покренути.

Балон — количина РАМ-а (КБ) заплењеног из ВМ-а помоћу Балон драјвера.

Компримовани - количина РАМ-а (КБ) која је компримована.

Заменио - количина РАМ-а (КБ) која се, због недостатка физичке меморије на серверу, преселила на диск.
Бројачи балона и других техника обнављања меморије су нула.

Овако изгледа графикон са бројачима меморије за ВМ који нормално ради са 150 ГБ РАМ-а.

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

На графикону испод, ВМ има очигледне проблеме. Испод графикона можете видети да су за овај ВМ коришћене све описане технике за рад са РАМ-ом. Балон за овај ВМ је много већи од Цонсумед. У ствари, ВМ је више мртав него жив.

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

ЕСКСТОП

Као и код ЦПУ-а, ако желимо брзо да проценимо ситуацију на хосту, као и његову динамику са интервалом до 2 секунде, требало би да користимо ЕСКСТОП.

ЕСКСТОП екран од стране Меморије се позива помоћу тастера „м“ и изгледа овако (одабрана су поља Б, Д, Х, Ј, К, Л, О):

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

Следећи параметри ће нас занимати:

Мем оверцоммит прос - просечна вредност преоптерећења меморије на хосту за 1, 5 и 15 минута. Ако је изнад нуле, онда је ово прилика да се види шта се дешава, али не увек показатељ проблема.

У редовима ПМЕМ/МБ и ВМКМЕМ/МБ - информације о физичкој меморији сервера и меморији доступној ВМкернелу. Из занимљивог овде можете видети вредност минфрее (у МБ), стање хоста у меморији (у нашем случају високо).

У реду НУМА/МБ можете видети дистрибуцију РАМ-а по НУМА чворовима (сокети). У овом примеру, расподела је неуједначена, што у принципу није баш добро.

Следи општа статистика сервера о техникама обнављања меморије:

ПСХАРЕ/МБ су ТПС статистика;

СВАП/МБ — Статистика коришћења замене;

ЗИП/МБ — статистика компресије меморијске странице;

МЕМЦТЛ/МБ — Статистика коришћења балона возача.

За појединачне ВМ, можда ће нас занимати следеће информације. Сакрио сам имена ВМ-а да не збуним публику :). Ако је ЕСКСТОП метрика слична бројачу у вСпхере, дајем одговарајући бројач.

МЕМСЗ — количина меморије конфигурисана на ВМ (МБ).
МЕМСЗ = ГРАНТ + МЦТЛСЗ + СВЦУР + нетакнут.

ОДОБРИТИ — Одобрено МБ.

ТЦХД — Активан у МБ.

МЦТЛ? - да ли је Баллоон Дривер инсталиран на ВМ.

МЦТЛСЗ — Балон за МБ.

МЦТЛГТ — количина РАМ-а (МБ) коју ЕСКСи жели да узме од ВМ-а преко Балон драјвера (Мемцтл Таргет).

МЦТЛМАКС - максималну количину РАМ-а (МБ) коју ЕСКСи може узети од ВМ-а преко Балон драјвера.

СВЦУР — тренутна количина РАМ-а (МБ) додељена ВМ-у из Свап датотеке.

СВГТ - количина РАМ-а (МБ) коју ЕСКСи жели да да ВМ-у из Свап датотеке (Свап Таргет).

Такође, преко ЕСКСТОП-а, можете видети детаљније информације о НУМА топологији ВМ-а. Да бисте то урадили, изаберите поља Д, Г:

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

НХН – НУМА чворови на којима се налази ВМ. Овде можете одмах приметити широки вм, који не стану на један НУМА чвор.

НРМЕМ - колико мегабајта меморије ВМ узима од удаљеног НУМА чвора.

НЛМЕМ - колико мегабајта меморије ВМ узима од локалног НУМА чвора.

Н%Л – проценат ВМ меморије на локалном НУМА чвору (ако је мањи од 80%, може доћи до проблема са перформансама).

Меморија на хипервизору

Ако ЦПУ бројачи за хипервизор обично нису од посебног интереса, онда је ситуација обрнута са меморијом. Висока употреба меморије на ВМ-у не указује увек на проблем са перформансама, али велика употреба меморије на хипервизору покреће технике управљања меморијом и узрокује проблеме са перформансама у ВМ-у. Аларми за коришћење меморије домаћина морају се надгледати како би се спречило да ВМ уђе у Свап.

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

унвап

Ако је ВМ у Свап-у, његове перформансе су знатно смањене. Трагови балонирања и компресије брзо нестају након што се слободна РАМ меморија појави на хосту, али виртуелна машина не жури да се врати из Свап-а у РАМ сервера.
Пре ЕСКСи 6.0, једини поуздан и брз начин да се ВМ извуче из Свап-а био је поновно покретање (да будемо прецизнији, искључите/укључите контејнер). Почевши од ЕСКСи 6.0, иако не баш званично, појавио се функционалан и поуздан начин за уклањање ВМ-а из Свап-а. На једној од конференција могао сам да разговарам са једним од ВМваре инжењера задуженим за ЦПУ Сцхедулер. Он је потврдио да је метод прилично ефикасан и сигуран. Према нашем искуству, ни са тим није било проблема.

Стварне команде за уклањање ВМ-а из Свап-а описано Дунцан Еппинг. Нећу понављати детаљан опис, само дајем пример његове употребе. Као што можете видети на снимку екрана, неко време након извршења наведених команди, Свап нестаје на ВМ-у.

Анализа перформанси ВМ у ВМваре вСпхере. Део 2: Сећање

ЕСКСи савети за управљање меморијом

На крају, ево неколико савета који ће вам помоћи да избегнете проблеме са перформансама ВМ-а због РАМ-а:

  • Избегавајте прекомерну претплату меморије у продуктивним кластерима. Пожељно је увек имати ~20-30% слободне меморије у кластеру како би ДРС (и администратор) имали простора за маневрисање, а ВМ не би улазили у Свап током миграције. Такође, не заборавите на маргину за толеранцију грешака. Непријатно је када, када један сервер откаже и ВМ се поново покрене помоћу ХА, неке од машина такође иду у Свап.
  • У високо консолидованим инфраструктурама, покушајте да НЕ креирате ВМ са више од половине меморије домаћина. Ово ће поново помоћи ДРС-у да дистрибуира виртуелне машине преко сервера кластера без икаквих проблема. Ово правило, наравно, није универзално :).
  • Пазите на аларм за коришћење меморије домаћина.
  • Не заборавите да инсталирате ВМваре Тоолс на ВМ и не искључујете балонирање.
  • Размислите о омогућавању интер-ВМ ТПС-а и онемогућавању великих страница у ВДИ и тест окружењима.
  • Ако ВМ има проблема са перформансама, проверите да ли користи меморију са удаљеног НУМА чвора.
  • Извуците свој ВМ из Свап-а што је пре могуће! Између осталог, ако је ВМ у Свап-у, из очигледних разлога, систем за складиштење пати.

То је све за мене о РАМ-у. Испод је сродни чланак за оне који желе да копају у детаље. Следећи чланак ће бити посвећен стораџу.

Корисни линковиhttp://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

Извор: ввв.хабр.цом

Додај коментар