VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

1-бөлім. Орталық процессор туралы

Бұл мақалада біз vSphere жүйесіндегі жедел жад (RAM) өнімділік есептегіштері туралы айтатын боламыз.
Жадпен процессорға қарағанда бәрі түсінікті сияқты: VM-де өнімділік мәселелері туындаса, оларды байқамау қиын. Бірақ егер олар пайда болса, олармен күресу әлдеқайда қиын. Бірақ бірінші нәрсе.

Біраз теория

Виртуалды машиналардың жедел жады VM жұмыс істейтін сервердің жадынан алынады. Бұл анық :). Сервердің жедел жады барлығына жеткіліксіз болса, ESXi жадты қалпына келтіру әдістерін қолдана бастайды. Әйтпесе, VM операциялық жүйелері жедел жадқа кіру қателерімен бұзылады.

ESXi ЖЖҚ жүктемесіне байланысты қандай әдістерді қолдану керектігін шешеді:

Жад күйі

Шекара

Әрекеттер

биік

400% мин.Тегін

Жоғарғы шекке жеткеннен кейін жадтың үлкен беттері кішігірім беттерге бөлінеді (TPS стандартты режимде жұмыс істейді).

айқын

100% мин.Тегін

Жадтың үлкен беттері кішкентайларға бөлінеді, TPS мәжбүрлі.

жұмсақ

64% мин.Тегін

TPS + шар

қиын

32% мин.Тегін

TPS + қысу + ауыстыру

төмен

16% мин.Тегін

Компресс + Ауыстыру + Блоктау

Көзі

minFree - гипервизордың жұмыс істеуі үшін қажет жедел жад.

ESXi 4.1 қоса алғанда, minFree әдепкі бойынша бекітілді - сервердің жедел жадының 6% (пайызды ESXi жүйесіндегі Mem.MinFreePct опциясы арқылы өзгертуге болады). Кейінгі нұсқаларда серверлердегі жадтың өсуіне байланысты minFree тіркелген пайыздық мән ретінде емес, хосттың жады көлеміне қарай есептеле бастады.

minFree мәні (әдепкі) келесідей есептеледі:

minFree үшін сақталған жад пайызы

Жад ауқымы

6%

0-4 ГБ

4%

4-12 ГБ

2%

12-28 ГБ

1%

Қалған жады

Көзі

Мысалы, 128 ГБ жедел жады бар сервер үшін MinFree мәні келесідей болады:
MinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 МБ = 1,88 ГБ
Нақты мән серверге және жедел жадқа байланысты бірнеше жүз МБ-қа өзгеруі мүмкін.

minFree үшін сақталған жад пайызы

Жад ауқымы

128 ГБ үшін мән

6%

0-4 ГБ

245,76 МБ

4%

4-12 ГБ

327,68 МБ

2%

12-28 ГБ

327,68 МБ

1%

Қалған жад (100 ГБ)

1024 МБ

Әдетте, өнімді стендтер үшін тек Жоғары күйді қалыпты деп санауға болады. Сынақ және әзірлеу орындықтары үшін Clear/Soft күйлері қолайлы болуы мүмкін. Хосттағы жедел жады 64% MinFree-ден аз болса, онда жұмыс істейтін VM құрылғыларында өнімділік мәселелері сөзсіз.

Әрбір күйде VM өнімділігіне іс жүзінде ешқандай әсер етпейтін TPS-тен бастап Swapping-ге дейін жадты қалпына келтірудің белгілі әдістері қолданылады. Мен сізге олар туралы толығырақ айтып беремін.

Transparent Page Sharing (TPS). TPS, шамамен айтқанда, сервердегі виртуалды машиналардың жедел жады беттерінің қайталануы.

ESXi беттердің хэш сомасын санау және салыстыру арқылы бірдей виртуалды машинаның жедел жады беттерін іздейді және қайталанатын беттерді жояды, оларды сервердің физикалық жадындағы бір бетке сілтемелермен ауыстырады. Нәтижесінде физикалық жадты тұтыну азаяды және кейбір жадқа артық жазылым өнімділікке іс жүзінде әсер етпестен қол жеткізуге болады.

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад
Көзі

Бұл механизм өлшемі 4 Кбайт жад беттері үшін ғана жұмыс істейді (шағын беттер). Гипервизор тіпті өлшемі 2 МБ (үлкен беттер) беттерді дедупликациялауға тырыспайды: мұндай өлшемдегі бірдей беттерді табу мүмкіндігі үлкен емес.

Әдепкі бойынша ESXi жадты үлкен беттерге бөледі. Үлкен беттерді шағын беттерге бөлу Жоғары күй шегіне жеткенде басталады және Таза күйге жеткенде мәжбүр болады (гипервизор күй кестесін қараңыз).

Егер сіз TPS хост ЖЖҚ толуын күтпей жұмыс істей бастауын қаласаңыз, ESXi Advanced Options ішіндегі мәнді орнатуыңыз керек. “Mem.AllocGuestLargePage” 0-ге дейін (әдепкі 1). Содан кейін виртуалды машиналар үшін үлкен жад беттерін бөлу өшіріледі.

2014 жылдың желтоқсан айынан бастап барлық ESXi шығарылымдарында VM арасындағы TPS әдепкі бойынша өшірілген, өйткені осалдық анықталғандықтан, бір VM басқа VM жедел жадына қол жеткізуге теориялық мүмкіндік береді. Толық ақпарат осында. Мен TPS осалдығын пайдалануды практикалық енгізу туралы ақпаратты кездестірген жоқпын.

TPS саясаты кеңейтілген опция арқылы басқарылады «Mem.ShareForceSalting» ESXi-де:
0 - VM аралық TPS. TPS әртүрлі VM беттері үшін жұмыс істейді;
1 – VMX жүйесінде бірдей “sched.mem.pshare.salt” мәні бар VM үшін TPS;
2 (әдепкі) – Intra-VM TPS. TPS VM ішіндегі беттер үшін жұмыс істейді.

Үлкен беттерді өшіру және сынақ стендтерінде Inter-VM TPS қосудың мағынасы бар. Бұл сондай-ақ ұқсас виртуалды құрылғылардың көп саны бар стендтер үшін де пайдаланылуы мүмкін. Мысалы, VDI бар стендтерде физикалық жадты үнемдеу ондаған пайызға жетуі мүмкін.

Жад шары. VM операциялық жүйесі үшін бұдан былай TPS сияқты әуе шарымен ұшу зиянсыз және мөлдір әдіс емес. Бірақ егер дұрыс пайдаланылса, сіз Ballooning көмегімен өмір сүре аласыз және тіпті жұмыс істей аласыз.

Vmware құралдарымен бірге VM-де Balloon Driver (aka vmmemctl) деп аталатын арнайы драйвер орнатылған. Гипервизордың физикалық жады таусылып, Жұмсақ күйге өткенде, ESXi VM-ден пайдаланылмаған жедел жадты осы Balloon Driver арқылы қайтарып алуды сұрайды. Драйвер, өз кезегінде, операциялық жүйе деңгейінде жұмыс істейді және одан бос жадты сұрайды. Гипервизор Balloon Driver физикалық жадтың қай беттерін алып жатқанын көреді, виртуалды машинадан жадты алып, оны хостқа қайтарады. ОЖ жұмысында ешқандай проблемалар жоқ, өйткені ОЖ деңгейінде жадты Balloon Driver алады. Әдепкі бойынша, Balloon Driver VM жадының 65% дейін қабылдай алады.

VMware құралдары VM құрылғысында орнатылмаған болса немесе шарлау өшірілген болса (мен оны ұсынбаймын, бірақ бар KB:), гипервизор дереу жадты жоюдың неғұрлым қатаң әдістеріне ауысады. Қорытынды: VMware құралдарының VM-де екеніне көз жеткізіңіз.

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад
Balloon Driver жұмысын VMware Tools арқылы ОЖ-дан тексеруге болады.

Жадты қысу. Бұл әдіс ESXi қатты күйге жеткенде қолданылады. Атауынан көрініп тұрғандай, ESXi 4 КБ оперативті жады бетін 2 КБ етіп қысуға тырысады, осылайша сервердің физикалық жадында біраз орынды босатады. Бұл әдіс VM RAM беттерінің мазмұнына қол жеткізу уақытын айтарлықтай арттырады, өйткені бет алдымен қысылуы керек. Кейде барлық беттерді қысу мүмкін емес және процестің өзі біраз уақыт алады. Сондықтан бұл әдіс тәжірибеде өте тиімді емес.

Жадты ауыстыру. Жадты қысудың қысқа кезеңінен кейін ESXi сөзсіз дерлік (егер VM басқа хосттарға көшпесе немесе өшірілмесе) Ауысу режиміне ауысады. Ал егер жад өте аз қалса (Төмен күй), онда гипервизор сонымен қатар VM-ге жад беттерін бөлуді тоқтатады, бұл VM қонақтық ОЖ-де ақаулық тудыруы мүмкін.

Свопинг осылай жұмыс істейді. Виртуалды машинаны қосқанда, ол үшін .vswp кеңейтімі бар файл жасалады. Көлемі бойынша ол VM сақталмаған жедел жадына тең: бұл конфигурацияланған және резервтелген жад арасындағы айырмашылық. Swapping іске қосылғанда, ESXi виртуалды машина жады беттерін осы файлға ауыстырады және сервердің физикалық жадының орнына онымен жұмыс істей бастайды. Әрине, мұндай «RAM» жады .vswp жылдам жадта болса да, нақты жадқа қарағанда бірнеше рет баяу.

Ballooning-тен айырмашылығы, пайдаланылмаған беттер VM-ден алынған кезде, ОЖ белсенді түрде пайдаланатын Swapping беттерін немесе VM ішіндегі қолданбаларды дискіге жылжытуға болады. Нәтижесінде VM өнімділігі қату нүктесіне дейін төмендейді. VM ресми түрде жұмыс істейді және кем дегенде оны ОЖ-дан дұрыс өшіруге болады. Сабыр етсеңіз😉

Егер VM құрылғылары Свопқа кеткен болса, бұл төтенше жағдай, мүмкіндігінше болдырмау керек.

Негізгі виртуалды машина жады өнімділігін есептегіштері

Сонымен, біз басты нәрсеге жеттік. VM жады күйін бақылау үшін келесі есептегіштер бар:

белсенді — алдыңғы өлшеу кезеңінде VM қол жеткізген ЖЖҚ (КБ) көлемін көрсетеді.

Пайдалану — Белсенді сияқты, бірақ VM конфигурацияланған жедел жадының пайызы ретінде. Келесі формула арқылы есептеледі: белсенді ÷ виртуалды машина конфигурацияланған жад өлшемі.
Тиісінше, жоғары пайдалану және белсенділік әрқашан VM өнімділігі мәселелерінің көрсеткіші бола бермейді. Егер VM жадты агрессивті түрде пайдаланса (кем дегенде оған қол жеткізу), бұл жад жеткіліксіз дегенді білдірмейді. Керісінше, бұл ОЖ-да не болып жатқанын қараудың себебі.
VM үшін жадты пайдаланудың стандартты дабылы бар:

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

Ортақ — TPS көмегімен қайталанатын VM ЖЖҚ мөлшері (VM ішінде немесе VM арасында).

Берілген — VM-ге бөлінген негізгі физикалық жадының көлемі (КБ). Ортақ параметрді қосады.

Тұтынылады (Берілген – Ортақ) – VM хосттан тұтынатын физикалық жад көлемі (КБ). Ортақ қосылмаған.

Егер VM жадының бір бөлігі хосттың физикалық жадынан емес, своп файлынан берілсе немесе жад VM-ден Balloon Driver арқылы алынса, бұл сома Берілген және тұтынылғанда есепке алынбайды.
Жоғары берілген және тұтынылатын мәндер мүлдем қалыпты. Операциялық жүйе гипервизордан бірте-бірте жадты алады және оны қайтармайды. Уақыт өте келе, белсенді жұмыс істейтін VM-де бұл есептегіштердің мәндері конфигурацияланған жад көлеміне жақындайды және сол жерде қалады.

нөл — нөлдерді қамтитын VM RAM (КБ) көлемі. Мұндай жадты гипервизор бос деп санайды және басқа виртуалды машиналарға берілуі мүмкін. Қонақ ОЖ нөлдік жадқа бірдеңе жазғаннан кейін ол Consumed ішіне өтеді және кері қайтарылмайды.

Резервтелген үстеме шығындар — VM операциясы үшін гипервизор сақтаған VM RAM көлемі, (КБ). Бұл шағын сома, бірақ ол хостта қолжетімді болуы керек, әйтпесе VM іске қосылмайды.

әуе шары — Balloon Driver көмегімен VM-ден жойылған ЖЖҚ (КБ) көлемі.

Қысылған — қысылған ЖЖҚ (КБ) көлемі.

Ауыстырылды — серверде физикалық жадының болмауына байланысты дискіге көшкен ЖЖҚ (КБ) көлемі.
Шар және басқа жадты қалпына келтіру әдістерінің есептегіштері нөлге тең.

150 ГБ жедел жады бар қалыпты жұмыс істейтін VM жад есептегіштерімен график осылай көрінеді.

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

Төмендегі графикте VM-де айқын мәселелер бар. Графиктің астында сіз бұл VM үшін жедел жадымен жұмыс істеудің барлық сипатталған әдістері қолданылғанын көре аласыз. Бұл виртуалды компьютерге арналған шар «Тұтынылғаннан» әлдеқайда үлкен. Шын мәнінде, VM тіріден гөрі өлі.

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

ESXTOP

CPU сияқты, егер біз хосттағы жағдайды, сондай-ақ оның динамикасын 2 секундқа дейінгі аралықпен жылдам бағалағымыз келсе, ESXTOP пайдалануымыз керек.

ESXTOP жад экраны «m» пернесі арқылы шақырылады және келесідей көрінеді (B,D,H,J,K,L,O өрістері таңдалған):

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

Келесі параметрлер бізді қызықтырады:

Орт — 1, 5 және 15 минут ішінде хосттағы жадтың артық жазылуының орташа мәні. Егер ол нөлден жоғары болса, онда бұл не болып жатқанын қараудың себебі, бірақ әрқашан проблемалардың көрсеткіші емес.

Жолдарда PMEM/MB и VMKMEM/MB — сервердің физикалық жады және VMkernel қол жетімді жады туралы ақпарат. Мұнда қызықты нәрселердің ішінде сіз minfree мәнін (МБ-де), жадтағы хост күйін (біздің жағдайда, жоғары) көре аласыз.

Кезекте NUMA/МБ NUMA түйіндері (розеткалар) бойынша жедел жадтың таралуын көруге болады. Бұл мысалда бөлу біркелкі емес, бұл негізінен жақсы емес.

Төменде жадты қалпына келтіру әдістеріне арналған жалпы сервер статистикасы берілген:

PSHARE/МБ — бұл TPS статистикасы;

SWAP/MB — Своп пайдалану статистикасы;

ZIP/MB — жад бетін сығу статистикасы;

MEMCTL/МБ — Balloon Driver қолдану статистикасы.

Жеке VM үшін бізді келесі ақпарат қызықтыруы мүмкін. Аудиторияны шатастырмау үшін VM атауларын жасырдым :). Егер ESXTOP метрикасы vSphere жүйесіндегі есептегішке ұқсас болса, мен сәйкес есептегішті беремін.

MEMSZ — VM-де конфигурацияланған жад көлемі (МБ).
MEMSZ = GRANT + MCTLSZ + SWCUR + тимеген.

ГРАНТ — МБ беріледі.

TCHD — Мбайтта белсенді.

MCTL? — VM-де Balloon Driver орнатылған ба.

MCTLSZ — МБ үшін шар.

MCTLGT — ESXi VM жүйесінен Balloon Driver (Memctl Target) арқылы жойғысы келетін ЖЖҚ (Мбайт) көлемі.

MCTLMAX — ESXi баллон драйвері арқылы виртуалды компьютерден алып тастай алатын ЖЖҚ (Мбайт) ең көп мөлшері.

SWCUR — Swap файлынан VM-ге бөлінген ағымдағы жедел жад көлемі (Мбайт).

S.W.G.T. — Swap файлынан (Swap Target) ESXi VM-ге бергісі келетін ЖЖҚ (Мбайт) көлемі.

Сондай-ақ ESXTOP арқылы виртуалды компьютердің NUMA топологиясы туралы толығырақ ақпаратты көруге болады. Ол үшін D, G өрістерін таңдаңыз:

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

КІШІ – VM орналасқан NUMA түйіндері. Мұнда сіз бір NUMA түйініне сәйкес келмейтін кең vm-ді бірден байқай аласыз.

NRMEM – VM қашықтағы NUMA түйінінен қанша мегабайт жад алады.

NLMEM – VM жергілікті NUMA түйінінен қанша мегабайт жад алады.

N%L – жергілікті NUMA түйініндегі VM жадының пайызы (егер 80%-дан аз болса, өнімділік мәселелері туындауы мүмкін).

Гипервизордағы жад

Егер гипервизорға арналған CPU есептегіштері әдетте ерекше қызығушылық тудырмаса, жадта жағдай керісінше болады. VM құрылғысында жоғары жадты пайдалану әрқашан өнімділік мәселесін көрсетпейді, бірақ гипервизордағы жадты жоғары пайдалану жадты басқару әдістерін іске қосады және VM өнімділігінде ақауларды тудырады. Хост жадын пайдалану дабылдарын бақылап, виртуалды құрылғылардың Swap жүйесіне енуіне жол бермеу керек.

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

Ауыстыру

Егер VM Swap ішінде ұсталса, оның өнімділігі айтарлықтай төмендейді. Хостта бос ЖЖҚ пайда болғаннан кейін шарлау және қысу іздері тез жоғалады, бірақ виртуалды машина Swap-тан сервердің жедел жадына оралуға асықпайды.
ESXi 6.0 нұсқасына дейін VM-ді Swap жүйесінен жоюдың жалғыз сенімді және жылдам жолы қайта жүктеу болды (дәлірек айтқанда, контейнерді өшіру/қосу). ESXi 6.0 нұсқасынан бастап, толық ресми болмаса да, VM-ді Swap жүйесінен жоюдың жұмыс істейтін және сенімді жолы пайда болды. Конференциялардың бірінде мен CPU Scheduler-ге жауапты VMware инженерлерінің бірімен сөйлесе алдым. Ол бұл әдіс өте тиімді және қауіпсіз екенін растады. Біздің тәжірибемізде бұл мәселе де болған жоқ.

Swap ішінен виртуалды компьютерді жоюға арналған нақты пәрмендер сипатталған Дункан Эпинг. Мен егжей-тегжейлі сипаттаманы қайталамаймын, мен оны пайдаланудың мысалын келтіремін. Скриншотта көріп отырғаныңыздай, көрсетілген пәрменді орындағаннан кейін біраз уақыттан кейін VM-де ауыстыру жоғалады.

VMware vSphere жүйесінде VM өнімділігін талдау. 2-бөлім: Жад

ESXi жүйесінде жедел жадты басқару бойынша кеңестер

Соңында, жедел жадқа байланысты VM өнімділігімен байланысты мәселелерді болдырмауға көмектесетін бірнеше кеңестер берілген:

  • Өнімді кластерлерде жедел жадтың артық жазылуын болдырмаңыз. DRS (және әкімші) маневр жасау мүмкіндігіне ие болу үшін және тасымалдау кезінде VM-лер Свопқа өтпеуі үшін кластерде әрқашан ~20-30% бос жад болғаны жөн. Сондай-ақ, ақауларға төзімділік үшін маржа туралы ұмытпаңыз. Бір сервер істен шыққанда және VM HA арқылы қайта жүктелгенде, кейбір машиналар да Свопқа ауысса, бұл жағымсыз.
  • Жоғары шоғырландырылған инфрақұрылымдарда негізгі жадының жартысынан асатын жады бар виртуалды құрылғыларды жасамауға тырысыңыз. Бұл тағы да DRS-ке виртуалды машиналарды кластерлік серверлер бойынша еш қиындықсыз таратуға көмектеседі. Бұл ереже, әрине, әмбебап емес :).
  • Хост жадын пайдалану дабылына назар аударыңыз.
  • VM-ге VMware Tools орнатуды ұмытпаңыз және Ballooning қызметін өшірмеңіз.
  • VDI және сынақ орталарында Inter-VM TPS қосуды және Үлкен беттерді өшіруді қарастырыңыз.
  • Егер VM өнімділік мәселелеріне тап болса, оның қашықтағы NUMA түйінінен жадты пайдаланып жатқанын тексеріңіз.
  • Своптан виртуалды құрылғыларды мүмкіндігінше тез жойыңыз! Басқа нәрселермен қатар, егер VM Swap режимінде болса, сақтау жүйесі белгілі себептерге байланысты зардап шегеді.

Мұның бәрі мен үшін RAM туралы. Төменде тереңірек барғысы келетіндерге қатысты мақалалар берілген. Келесі мақала сторажға арналады.

Пайдалы сілтемелер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

Ақпарат көзі: www.habr.com

пікір қалдыру