Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

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

Размотрићу следеће аспекте перформанси виртуелне машине:

  • ЦПУ
  • РАМ,
  • ДИСК,
  • Мрежа.

Почећу са ЦПУ-ом.

За анализу учинка биће нам потребно:

  • вЦентер Перформанце Цоунтерс – бројачи перформанси, чији се графикони могу видети преко вСпхере клијента. Информације о овим бројачима су доступне у било којој верзији клијента („дебели“ клијент у Ц#, веб клијент у Флек-у и веб клијент у ХТМЛ5). У овим чланцима ћемо користити снимке екрана са Ц# клијента, само зато што изгледају боље у минијатури :)
  • ЕСКСТОП – услужни програм који се покреће са командне линије ЕСКСи. Уз његову помоћ, можете добити вредности бројача перформанси у реалном времену или учитати ове вредности за одређени период у .цсв датотеку за даљу анализу. Затим ћу вам рећи више о овом алату и пружити неколико корисних веза до документације и чланака на ту тему.

Мало теорије

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

У ЕСКСи, посебан процес – свет у ВМваре терминологији – одговоран је за рад сваког вЦПУ-а (језгра виртуелне машине). Постоје и сервисни процеси, али су са становишта анализе перформанси ВМ мање интересантни.

Процес у ЕСКСи може бити у једном од четири стања:

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

Основни бројачи ЦПУ перформанси виртуелне машине

Употреба ЦПУ-а, %. Приказује проценат коришћења ЦПУ-а за дати период.

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Како анализирати? Ако ВМ доследно користи ЦПУ на 90% или има врхова до 100%, онда имамо проблема. Проблеми се могу изразити не само у „спором“ раду апликације унутар ВМ-а, већ иу недоступности ВМ-а преко мреже. Ако систем за праћење показује да ВМ периодично пада, обратите пажњу на врхове у графикону употребе ЦПУ-а.

Постоји стандардни аларм који показује оптерећење ЦПУ-а виртуелне машине:

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Шта да радим? Ако употреба ЦПУ-а ВМ-а константно пролази кроз кров, онда можете размишљати о повећању броја вЦПУ-а (нажалост, ово не помаже увек) или премештању ВМ-а на сервер са моћнијим процесорима.

Употреба ЦПУ-а у МХз

На графиконима о употреби вЦентер у % можете видети само за целу виртуелну машину; нема графикона за појединачна језгра (у Есктоп-у постоје % вредности за језгра). За свако језгро можете видети Употреба у МХз.

Како анализирати? Дешава се да апликација није оптимизована за архитектуру са више језгара: користи само једно језгро 100%, а остали мирују без оптерећења. На пример, са подразумеваним поставкама резервне копије, МС СКЛ покреће процес на само једном језгру. Као резултат тога, резервна копија се успорава не због мале брзине дискова (на то се корисник у почетку жалио), већ зато што процесор не може да се носи. Проблем је решен променом параметара: резервна копија је почела да се покреће паралелно у неколико датотека (односно, у неколико процеса).

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ
Пример неравномерног оптерећења језгара.

Постоји и ситуација (као на горњем графикону) када су језгра неравномерно оптерећена и нека од њих имају врхове од 100%. Као и код учитавања само једног језгра, аларм за коришћење ЦПУ-а неће радити (то је за цео ВМ), али ће бити проблема са перформансама.

Шта да радим? Ако софтвер у виртуелној машини неравномерно учитава језгра (користи само једно језгро или део језгара), нема смисла повећавати њихов број. У овом случају, боље је преместити ВМ на сервер са моћнијим процесорима.

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

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

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

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

ЦПУ Реади

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

Како анализирати? Обично, ако су језгра виртуелне машине у стању Реади више од 10% времена, приметићете проблеме са перформансама. Једноставно речено, више од 10% времена ВМ чека да физички ресурси постану доступни.

У вЦентер-у можете видети 2 бројача који се односе на ЦПУ Реади:

  • спремност,
  • Спреман.

Вредности оба бројача се могу видети и за цео ВМ и за појединачна језгра.
Спремност приказује вредност одмах у процентима, али само у реалном времену (подаци за последњи сат, интервал мерења 20 секунди). Боље је користити овај бројач само за тражење проблема „врућих за петама“.

Спремне вредности бројача се такође могу посматрати из историјске перспективе. Ово је корисно за успостављање образаца и за дубљу анализу проблема. На пример, ако виртуелна машина почне да има проблеме са перформансама у одређено време, можете да упоредите интервале вредности ЦПУ Реади са укупним оптерећењем на серверу на коме ради овај ВМ и да предузмете мере за смањење оптерећења (ако ДРС не успева).

Спремност, за разлику од Реадинесс, се не приказује у процентима, већ у милисекундама. Ово је бројач типа сумирања, односно показује колико је дуго током периода мерења језгро ВМ било у стању приправности. Ову вредност можете претворити у проценат користећи једноставну формулу:

(Збирна вредност ЦПУ-а / (подразумевани интервал ажурирања графикона у секундама * 1000)) * 100 = ЦПУ спреман %

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

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Приликом израчунавања процента спремности, обратите пажњу на две тачке:

  • Вредност Реади за цео ВМ је збир Реади у свим језграма.
  • Интервал мерења. За реално време је 20 секунди, а на пример на дневним графиконима је 300 секунди.

Уз активно решавање проблема, ове једноставне тачке се лако могу пропустити и драгоцено време се може изгубити на решавање непостојећих проблема.

Хајде да израчунамо Реади на основу података са графикона испод. (324474/(20*1000))*100 = 1622% за цео ВМ. Ако погледате језгра, није тако страшно: 1622/64 = 25% по језгру. У овом случају, улов је прилично лако уочити: вредност Реади је нереална. Али ако говоримо о 10–20% за цео ВМ са неколико језгара, онда за свако језгро вредност може бити унутар нормалног опсега.

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Шта да радим? Висока вредност Реади указује на то да сервер нема довољно процесорских ресурса за нормалан рад виртуелних машина. У таквој ситуацији остаје само да се смањи прекомерна претплата по процесору (вЦПУ:пЦПУ). Очигледно, ово се може постићи смањењем параметара постојећих ВМ-а или миграцијом дела ВМ-а на друге сервере.

Цо-стоп

Како анализирати? Овај бројач је такође типа сумирања и конвертује се у проценте на исти начин као Реади:

(ЦПУ вредност сумирања заједничког заустављања / (подразумевани интервал ажурирања графикона у секундама * 1000)) * 100 = % заједничког заустављања ЦПУ-а

Овде такође треба обратити пажњу на број језгара на ВМ-у и интервал мерења.
У костоп стању, кернел не обавља користан рад. Са исправним избором величине ВМ-а и нормалним оптерећењем на серверу, бројач ко-стоп треба да буде близу нуле.

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ
У овом случају, оптерећење је очигледно ненормално :)

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

Такође, ко-стоп ће се повећати ако активна језгра једног ВМ-а користе нити на једном физичком језгру сервера са омогућеним хипер-треадингом. Ова ситуација може настати, на пример, ако ВМ има више језгара него што је физички доступно на серверу на коме ради, или ако је поставка „преферХТ“ омогућена за ВМ. Можете прочитати о овој поставци овде.

Да бисте избегли проблеме са перформансама ВМ-а због високог заједничког заустављања, изаберите величину ВМ-а у складу са препорукама произвођача софтвера који ради на овом ВМ-у и могућностима физичког сервера на коме ВМ ради.

Немојте додавати језгра у резерви; ово може изазвати проблеме у перформансама не само за сам ВМ, већ и за његове суседе на серверу.

Остале корисне ЦПУ метрике

трчање – колико је времена (мс) током периода мерења вЦПУ био у стању РУН, односно, заправо је обављао користан посао.

Идле – колико дуго (мс) током периода мерења вЦПУ је био у стању неактивности. Високе вредности мировања нису проблем, вЦПУ једноставно није имао „шта да ради“.

Ваит – колико дуго (мс) током периода мерења вЦПУ је био у стању чекања. Пошто је ИДЛЕ укључен у овај бројач, високе вредности чекања такође не указују на проблем. Али ако је Ваит ИДЛЕ низак када је Ваит висок, то значи да је ВМ чекао да се заврше И/О операције, а то заузврат може указивати на проблем са перформансама чврстог диска или било ког виртуелног уређаја ВМ.

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

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

ЕСКСТОП

Ако су бројачи перформанси у вЦентер-у добри за анализу историјских података, онда је оперативну анализу проблема боље урадити у ЕСКСТОП-у. Овде су све вредности представљене у готовом облику (нема потребе да се било шта преводи), а минимални период мерења је 2 секунде.
ЕСКСТОП екран за ЦПУ се позива помоћу тастера "ц" и изгледа овако:

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Ради практичности, можете оставити само процесе виртуелне машине притиском на Схифт-В.
Да бисте видели метрику за појединачна језгра ВМ, притисните „е“ и унесите ГИД ВМ од интереса (30919 на снимку екрана испод):

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Дозволите ми да укратко прођем кроз колоне које су подразумевано представљене. Додатне колоне се могу додати притиском на "ф".

НВЛД (Број светова) – број процеса у групи. Да бисте проширили групу и видели метрику за сваки процес (на пример, за свако језгро у ВМ са више језгара), притисните „е“. Ако постоји више од једног процеса у групи, онда су метричке вредности за групу једнаке збиру метрика за појединачне процесе.

%УСЕД – колико циклуса ЦПУ сервера користи процес или група процеса.

%ТРЦАТИ – колико дуго је током периода мерења процес био у РУН стању, тј. обавио користан посао. Разликује се од %УСЕД по томе што не узима у обзир хипер-нитовање, скалирање фреквенције и време проведено на системским задацима (%СИС).

%СИС – време проведено на системским задацима, на пример: обрада прекида, И/О, рад мреже, итд. Вредност може бити висока ако ВМ има велики И/О.

%ОВРЛП – колико је времена физичко језгро на којем се покреће ВМ процес потрошило на задатке других процеса.

Ови показатељи су међусобно повезани на следећи начин:

%УСЕД = %РУН + %СИС - %ОВРЛП.

Обично је метрика %УСЕД информативнија.

%ЧЕКАТИ – колико дуго је током периода мерења процес био у стању чекања. Омогућава ИДЛЕ.

%НЕАКТИВАН – колико дуго је током периода мерења процес био у стању ИДЛЕ.

%СВПВТ – колико је дуго током периода мерења вЦПУ чекао на операцију са ВМкернел Свап.

%ВМВАИТ – колико дуго је вЦПУ током периода мерења био у стању чекања на догађај (обично И/О). Не постоји сличан бројач у вЦентер-у. Високе вредности указују на проблеме са И/О на ВМ-у.

%ВАИТ = %ВМВАИТ + %ИДЛЕ + %СВПВТ.

Ако ВМ не користи ВМкернел Свап, онда је при анализи проблема са перформансама препоручљиво погледати %ВМВАИТ, пошто ова метрика не узима у обзир време када ВМ није радио ништа (%ИДЛЕ).

%РДИ – колико дуго је током периода мерења процес био у стању приправности.

%ЦСТП – колико дуго је током периода мерења процес био у костоп стању.

%МЛМТД – колико дуго је током периода мерења вЦПУ био у стању Спреман због постављеног ограничења ресурса.

%ВАИТ + %РДИ + %ЦСТП + %РУН = 100% – језгро ВМ-а је увек у једном од ова четири стања.

ЦПУ на хипервизору

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

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

За сервер, као и за виртуелну машину, постоји стандардни аларм:

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Када је оптерећење процесора сервера велико, ВМ-ови који раде на њему почињу да имају проблеме са перформансама.

У ЕСКСТОП-у, подаци о учитавању процесора сервера су представљени на врху екрана. Поред стандардног оптерећења ЦПУ-а, које није баш информативно за хипервизоре, постоје још три метрике:

ЦОРЕ УТИЛ(%) – учитавање физичког језгра сервера. Овај бројач показује колико је времена језгро обављало рад током периода мерења.

ПЦПУ УТИЛ(%) – ако је омогућено хипер-нитирање, тада постоје две нити (ПЦПУ) по физичком језгру. Ова метрика показује колико је времена потребно свакој нити да заврши посао.

ПЦПУ КОРИШЋЕН(%) – исто што и ПЦПУ УТИЛ(%), али узима у обзир скалирање фреквенције (било смањење фреквенције језгра у сврху уштеде енергије или повећање фреквенције језгра због Турбо Боост технологије) и хипер-нитовање.

ПЦПУ_УСЕД% = ПЦПУ_УТИЛ% * ефективна фреквенција језгра / номинална фреквенција језгра.

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ
На овом снимку екрана, за нека језгра, због Турбо Боост-а, КОРИШЋЕНА вредност је већа од 100%, пошто је фреквенција језгра виша од номиналне.

Неколико речи о томе како се узима у обзир хипер-нитност. Ако се процеси извршавају 100% времена на обе нити физичког језгра сервера, док језгро ради на номиналној фреквенцији, онда:

  • ЦОРЕ УТИЛ за језгро ће бити 100%
  • ПЦПУ УТИЛ за обе нити ће бити 100%,
  • ПЦПУ КОРИШТЕН за обе нити ће бити 50%.

Ако обе нити нису радиле 100% времена током периода мерења, онда се током тих периода када су нити радиле паралелно, ПЦПУ КОРИШЋЕН за језгра се дели на пола.

ЕСКСТОП такође има екран са параметрима потрошње ЦПУ сервера. Овде можете видети да ли сервер користи технологије за уштеду енергије: Ц-стања и П-стања. Позива се помоћу тастера "п":

Анализа перформанси виртуелне машине у ВМваре вСпхере. Део 1: ЦПУ

Уобичајени проблеми са перформансама процесора

На крају ћу прећи преко типичних узрока проблема са перформансама ВМ ЦПУ-а и дати кратке савете за њихово решавање:

Брзина такта језгра није довољна. Ако није могуће надоградити свој ВМ на снажнија језгра, можете покушати да промените поставке напајања да би Турбо Боост радио ефикасније.

Нетачна величина ВМ-а (превише/мало језгара). Ако инсталирате неколико језгара, биће велико оптерећење ЦПУ-а на ВМ-у. Ако је много, ухватите високу стопу.

Велика претплата ЦПУ-а на серверу. Ако ВМ има високу Реади, смањите прекомерну претплату на ЦПУ.

Нетачна НУМА топологија на великим ВМ-овима. НУМА топологија коју види ВМ (вНУМА) мора да одговара НУМА топологији сервера (пНУМА). Дијагностика и могућа решења овог проблема су, на пример, написана у књизи „ВМваре вСпхере 6.5 Хост Ресоурцес Дееп Диве“. Ако не желите да идете дубље и немате ограничења лиценцирања за ОС инсталиран на ВМ, направите много виртуелних утичница на ВМ, једно по једно језгро. Нећете много изгубити :)

То је све за мене о ЦПУ-у. Постављају питања. У следећем делу ћу говорити о РАМ-у.

Корисни линковиhttp://virtual-red-dot.info/vm-cpu-counters-vsphere/
https://kb.vmware.com/kb/1017926
http://www.yellow-bricks.com/2012/07/17/why-is-wait-so-high/
https://communities.vmware.com/docs/DOC-9279
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/whats-new-vsphere65-perf.pdf
https://pages.rubrik.com/host-resources-deep-dive_request.html

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

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