Виртуализация. Оптимизиране на използването на Hyper-V памет
Когато хоствате виртуални работни натоварвания, физическата памет е може би най-важният хардуерен ресурс за цялостната производителност. От решаващо значение е да се разпредели памет, така че всяка виртуална машина (VM) да има паметта, от която се нуждае, без да губи памет. Следват няколко ключови съображения за разпределяне на памет при работа с Microsoft Hyper-V.
Съображения относно архитектурата на NUMA
Управлението на паметта за Hyper-V е форма на изкуство. Трябва да се уверите, че всяка виртуална машина разполага с подходящо количество памет. В същото време трябва да избягвате да давате на VM повече памет, отколкото е необходимо.
Причините за това изглеждат очевидни. Прекомерното разпределяне на памет за една виртуална машина ограничава количеството памет, което може да бъде разпределено за други виртуални машини на същия сървър. Но понякога разпределянето на прекомерна памет за VM също може да влоши нейната производителност.
Повечето нови сървъри използват памет с нееднородна архитектура за достъп (NUMA). NUMA е предназначена да подобри производителността чрез разпределяне на памет към отделни процесори. Индивидуалните блокове от разпределената памет са известни като NUMA възли. Процесорът има достъп до своя локален NUMA възел (памет, директно разпределена за този процесор) по-бързо от други NUMA възли.
Hyper-V версиите за Windows Server 2008 и 2008 R2 не поддържат директно картографиране на памет към NUMA възли. С други думи, VM не може да бъде директно конфигуриран да използва конкретен NUMA хост. Съобщено е, че тази възможност съществува в Hyper-V за Windows Server 8. Има обаче стъпки, които можете да предприемете, за да намалите шансоветеизползвайки нелокален VM NUMA възел.
Номерът е да се изчисли размерът на всеки NUMA възел. Например, да приемем, че нашият сървър има два осемядрени процесора и 128 GB RAM. Размерът на възела NUMA може да се изчисли, като се раздели количеството памет (128 GB) на броя на процесорните ядра (16). В този конкретен случай размерът на възела NUMA ще бъде 8 GB.
Hyper-V все още не ни позволява да присвоим конкретен NUMA хост към конкретна VM. Въпреки това, тъй като е известно, че NUMA възлите на този сървър са 8 GB, можете да предположите, че всяка виртуална машина, на която е разпределена повече от 8 GB памет, ще използва памет от множество NUMA възли. Ограничаването на паметта, разпределена за VM до 8 GB или по-малко (в този случай), увеличава шансовете VM да използва памет от един NUMA възел, като по този начин подобрява производителността.
Hyper-V режийни
NUMA възлите не са единственият фактор, който трябва да се има предвид при управление на паметта. Когато планирате как да използвате паметта на хост сървъра, важно е да вземете предвид режийните разходи, свързани с виртуализацията. Има два основни фактора, които трябва да се вземат предвид във връзка с тези разходи. Първо, родителският раздел изисква разпределение на паметта.
Трябва да запазите минимум 300 MB за хипервайзора и 512 MB за хост ОС, работеща на родителския дял. Повечето препоръки обаче гласят, че 2 GB трябва да бъдат запазени за родителския дял.
Хост дялът трябва да се използва само за Hyper-V (въпреки че може също да изпълнява инфраструктура и софтуер за сигурност, като агенти за управление, агенти за архивиране и защитни стени). Следователно препоръчителното количество от 2 GB предполага, че родителският дял няма да се използва за допълнителни приложения или роли.сървър.
Hyper-V не позволява директно разпределение към хост дял. Всъщност той използва това, което е останало. Следователно имайте предвид, че 2 GB памет на хост сървъра трябва да бъдат оставени неразпределени, така че да са достъпни за родителския дял.
Разпределяне на памет към машините за гости
Друг фактор за натоварване на паметта, който трябва да се вземе предвид, е ниското използване на паметта на VM за интеграционни услуги и други процеси, свързани с виртуализацията. Това количество памет е доста малко, така че обикновено няма нужда да се притеснявате за разпределянето на допълнителна памет за нея, освен ако не планирате да предоставите на всяка виртуална машина само минимално необходимата памет.
VM с 1 GB RAM или по-малко използват само около 32 MB памет за виртуализация. Това трябва да добави 8 MB за всеки допълнителен гигабайт RAM. Например, VM с 2 GB RAM ще използва 40 MB (32+8) памет за виртуализация. По същия начин VM с 4 GB памет ще загуби 64 MB по този начин.
динамична памет
Windows Server 2008 R2 SP1 въведе нова функция за динамична памет, която позволява на VM да консумира памет динамично въз основа на текущото натоварване. Той също така позволява физическата памет на сървъра да се използва извън нормалното, за да се използват повече виртуални машини, отколкото иначе би било възможно. Въпреки всички предимства на динамичната памет, когато я използвате, е важно да следвате някои правила, за да избегнете изчерпване на паметта във VM.
Първо, използването на динамична памет не е оптимално във всички случаи. Можете да активирате или деактивирате динамична памет за всяка отделна виртуална машина. Важно е да го активирате само за онези виртуални машини, които наистина могат да го използват.
Един от найВажно съображение тук е натоварването на VM. Ако приложение във VM е проектирано да използва фиксирано количество памет, по-добре е да дадете на VM точно количеството памет, от което се нуждае приложението, вместо да използвате динамична памет.
Същото важи и за приложения, които изискват голямо количество памет. Някои приложения са проектирани да консумират възможно най-много памет. Такива приложения могат бързо да консумират цялата физическа памет на сървъра, ако им е разрешено да използват динамична памет. VM, изпълняващи този тип приложения, е по-добре да разпределят фиксирано количество памет.
И накрая, производителността на сървъра може да пострада, ако VM се опита да използва памет от множество NUMA възли. Следователно, ако сървърът използва NUMA памет и производителността е важен проблем, може да се наложи да се въздържате от използване на динамична памет.
RAM за стартиране
Една от най-важните концепции за разбиране в областта на динамичната памет е RAM, която трябва да работи. Когато използвате динамична памет, на всяка виртуална машина трябва да бъде присвоена стойността на RAM при стартиране. Тази стойност отразява количеството физическа памет, което VM първоначално ще използва след зареждане. По-важното е, че RAM при стартиране също представлява минималното количество физическа памет, консумирано от VM. Използването на VM памет не може да бъде по-ниско от стойността на RAM при стартиране.
Имайки това предвид, Microsoft препоръчва да избягвате да присвоявате големи количества RAM на виртуална машина за работа. RAM при стартиране е най-добре въз основа на операционната система, използвана от VM. Microsoft препоръчва използването на 512 MB RAM за стартиране на виртуални машини, работещи под Windows 7, Windows Vista, Windows Server 2008 и Windows Server 2008 R2. Ако виртуалните машини саЗа да използвате Windows Server 2003 или Windows Server 2003 R2, Microsoft препоръчва 128 MB RAM за работа.
За да може VM да използва динамична памет, последната трябва да се поддържа от операционната система, работеща на тази VM. Windows XP не поддържа динамична памет. Когато се опитвате да стартирате Windows XP на виртуална машина, която е конфигурирана да използва динамична памет, операционната система има достъп само до RAM при стартиране.
Преди да преминете към други конфигурационни задачи, важно е да се уверите, че общото количество RAM при стартиране, разпределено за всички съществуващи виртуални машини, не надвишава физическото количество RAM на сървъра. В противен случай ще трябва или да премахнете част от VM, или да добавите още памет.
Може също да се наложи да коригирате стойността на максималното количество RAM. Тази стойност определя горната граница на физическата памет, която VM може да използва. По подразбиране Hyper-V задава максималната RAM на VM на 64 GB. Ако някои виртуални машини не изискват толкова много физическа памет, може да се наложи да намалите максималната стойност на RAM.
Тегло на паметта
Целият смисъл на идеята за динамична памет е възможността за по-интензивно използване на паметта. Той позволява на виртуалните машини да имат достъп до паметта, от която се нуждаят, когато имат нужда от нея. Големият недостатък на интензивното използване на всеки хардуерен ресурс е възможността той да се изчерпи в даден момент. В случай на динамична памет, виртуалните машини могат да консумират цялата налична физическа памет и да изискват повече.
Дългосрочното решение на този проблем е да се предостави на сървъра достатъчно памет, за да обслужва изискванията на VM. Временно решение е да се даде приоритет на използването на паметта.
Почти всички хост сървъри имат VM, които са по-важни от другите. Hyper-V ви позволява да приоритизиратеVM, така че в случай на недостатъчна физическа памет паметта първо ще бъде разпределена за VM с по-висок приоритет. Можете да дадете приоритет на нуждата на VM от динамична памет, като коригирате нейното тегло на паметта. VM с по-високи тегла на паметта имат предимство пред VM с по-ниски тегла на паметта.
Друга настройка, която трябва да бъде конфигурирана за всяка виртуална машина, която използва динамична памет, е буферът на паметта. Настройката на буфера на паметта контролира колко памет всяка виртуална машина трябва да се опита да резервира като буфер. Тази стойност се изразява като процент. Например, ако VM използва 4 GB разпределена памет и буферът на паметта е настроен на 50 процента, VM може да консумира до 6 GB памет.
Буферът на паметта не гарантира, че паметта в буфера ще бъде достъпна за VM. Той просто контролира колко памет VM трябва да се опита да поиска. Трябва да се отбележи, че тъй като буферът на паметта се изразява като процент, количеството памет в буфера се променя в зависимост от количеството памет, използвано от VM в определен момент от време. Всички виртуални машини, използващи динамична памет, започват да използват минималното количество памет. Те динамично коригират използването на паметта си въз основа на изискванията, поставени върху тяхната памет от работни натоварвания.
Конфигурация на паметта
Действителният процес на конфигуриране на използването на VM памет е прост. Отворете Hyper-V Manager и щракнете с десния бутон върху VM (тъй като паметта на всяка VM се управлява независимо). Изберете командата Опции от контекстното меню. Когато се появи диалоговият прозорец Опции, щракнете върху Памет.
Hyper-V предоставя опцията за разпределяне на статична памет към VM или използване на динамична памет (вижтеФигура 1 ). Ако е избрана динамична памет, параметрите на RAM за изпълнение, максималното количество RAM,буферите на паметта и теглата на паметта могат да бъдат конфигурирани директно в диалоговия прозорец Опции.

Ориз. 1.Разпределението на паметта за виртуалната машина може да се регулира чрез диалоговия прозорец Опции.
Ако ресурсите на физическата памет на хост сървъра са ограничени, обикновено се изисква компромис между използването на статична и динамична памет. Статичната памет обикновено осигурява по-добра цялостна производителност (когато е разпределена адекватно). Динамичната памет може да бъде трудна, но обикновено позволява по-висока плътност на VM.