Полный обзор лучших практик динамической памяти Hyper-V

Динамическая память Hyper-V была впервые введена в Windows Server 2008 R2 с пакетом обновления SP1. До ее выпуска виртуальная машина Hyper-V (ВМ) запускалась и работала с полным объемом выделенной ей оперативной памяти, что приводило к перерасходу памяти и влияло на общую производительность ВМ. Более того, объем доступной оперативной памяти для ВМ можно было изменить только при выключенной ВМ. Поэтому было разумно заменить статическое выделение памяти динамическим выделением памяти и ввести функцию динамической памяти Hyper-V.

Что такое динамическая память Hyper-V?

Динамическая память Hyper-V – это функция, позволяющая динамически выделять ресурсы памяти для ВМ, работающих в среде Hyper-V. Эта функциональность извлекает часть неиспользуемой памяти из ВМ, которым она в данный момент не нужна, а затем перераспределяет извлеченную память другим ВМ, которым она действительно нужна.

С динамической памятью Hyper-V вы можете указать объем памяти для запуска, который может использовать ВМ, установить диапазон доступной физической памяти для конкретной ВМ и определить приоритет ВМ для выделения памяти. Физическая память может быть эффективно и динамически назначена ВМ по мере необходимости и с минимальным влиянием на производительность. В результате у вас есть более детальный контроль над использованием памяти и улучшенная оптимизация ресурсов.

Преимущества и недостатки динамической памяти Hyper-V

Динамическая память Hyper-V – полезная функция, которая предлагает множество преимуществ, таких как:

  • Снижение потребления памяти, так как ВМ использует только ту память, которая ей действительно необходима в пределах, установленных администратором
  • Эффективное распределение памяти, так как вы можете динамически назначать больше или меньше памяти для запущенной ВМ
  • Более высокие показатели консолидации благодаря более эффективному использованию ресурсов памяти
  • Улучшенная надежность операций перезагрузки с помощью Smart Paging Hyper-V
  • Экономичность, так как ресурсы ВМ не тратятся напрасно

Однако у Hyper-V Dynamic Memory также есть ряд недостатков, которые могут негативно сказаться на производительности памяти ВМ. Они включают в себя следующее:

  • Риск перепроектирования физической памяти компьютера в случае ненадлежащего контроля за распределением памяти в вашей виртуальной среде
  • Некоторые настройки памяти нельзя изменить при работающей ВМ. Таким образом, вы не можете уменьшить или увеличить максимальное и минимальное количество памяти, а также изменить количество памяти при запуске ВМ, когда ВМ все еще работает или приостановлена.
  • При включенной Dynamic Memory Hyper-V могут возникать проблемы с приложениями баз данных. Рекомендуется использовать приложения, совместимые с Dynamic Memory Hyper-V, чтобы избежать проблем с производительностью.

Настройки Dynamic Memory Hyper-VDynamic Memory Hyper-V включает пять настроек ВМ, которые могут быть настроены в Менеджере Hyper-V. Для этого откройте Менеджер Hyper-V, выберите нужную ВМ, нажмите Настройки и выберите Память. Вы увидите следующее:

Гипер-V Динамическая память включает пять настроек виртуальной машины, которые могут быть настроены в диспетчере Hyper-V. Для этой цели откройте диспетчер Hyper-V, выберите требуемую виртуальную машину, нажмите Настройки и выберите Память. Вы увидите следующее:

Однако, прежде чем вы сможете начать настройку параметров Hyper-V Динамической памяти, сначала рекомендуется ознакомиться с тем, как работают эти компоненты и какие преимущества они могут предоставить. Давайте рассмотрим каждый из них.

Загрузочная память (Startup RAM)

Это значение Hyper-V Динамической памяти определяет минимальное количество физической памяти, которое может использовать выбранная виртуальная машина во время ее запуска. Загрузочная память должна быть достаточно высокой, чтобы позволить виртуальной машине быстро запуститься и без перерывов. Обратите внимание, что загрузочную память нельзя изменить, когда виртуальная машина работает.

Минимальная память (Minimum RAM)

Это значение Hyper-V Динамической памяти определяет минимальное количество физической памяти, которое должно быть назначено виртуальной машине после ее запуска. Если другим виртуальным машинам требуется дополнительная память, хост Hyper-V может начать возвращать неиспользуемую память от этой виртуальной машины до тех пор, пока не будет достигнуто значение минимальной памяти. Обратите внимание, что значение может быть установлено как низкое, как32 МБ, но оно не может быть выше, чем загрузочная память. Более того, вы не можете увеличить минимальную память, когда виртуальная машина работает или приостановлена, но вы можете уменьшить ее (например, вы можете изменить значение минимальной памяти с512 МБ до64 МБ).

Максимальная память (Maximum RAM)

Это значение Hyper-V Dynamic Memory определяет максимальное количество физической памяти, которое может использовать ВМ. Обратите внимание, что это значение не может быть меньше назначенной начальной памяти RAM, но может достигать1 ТБ (1048576 МБ). Более того, вы не можете уменьшить максимальное количество памяти, пока ВМ работает или приостановлена, но можете увеличить его (например, вы можете изменить максимальное значение RAM с512 МБ до2048 МБ).

Буфер памяти

Это значение Hyper-V Dynamic Memory определяет процент физической памяти, который должен быть выделен ВМ в качестве буфера. Буфер памяти – это часть физической памяти, которая выделяется ВМ на основе ее потребностей в памяти. Чтобы рассчитать буфер памяти, вам нужно использовать следующую формулу:

Количество буфера памяти = сколько памяти фактически требуется виртуальной машине / (значение буфера памяти /100).

По умолчанию значение буфера памяти составляет20%, но его можно установить на уровне от5% до2000%. Вы можете изменить значение буфера памяти в любой момент, даже когда ВМ работает.

Вес памяти

Это значение Hyper-V Dynamic Memory определяет приоритет выбранной ВМ по сравнению с другими ВМ на этом хосте. На основе этого порядка приоритетов вы можете определить, как распределять доступную память между несколькими ВМ, работающими на одном хосте Hyper-V.

Обратите внимание, что если приоритет ВМ установлен слишком низко, и количество доступной физической памяти уменьшается, существует риск того, что эта ВМ не сможет загрузиться. Вы можете изменить значение веса памяти в любой момент, даже когда ВМ работает.

Рекомендации по использованию динамической памяти Hyper-V

Для достижения высокой производительности и повышения эффективности использования памяти в средах Hyper-V рекомендуется следовать рекомендациям по использованию динамической памяти Hyper-V.

Ниже перечислены рекомендации по использованию динамической памяти Hyper-V, которые могут значительно улучшить производительность памяти виртуальных машин и ваш общий опыт работы в средах Hyper-V.

Включение Hyper-V Integration Services

Hyper-V Integration Services – это набор утилит, которые позволяют улучшить производительность виртуальных машин в средах Hyper-V. Каждый Hyper-V Integration Service должен быть включен как на хост-машине, так и на гостевой машине, чтобы они могли правильно функционировать и предоставлять услуги в соответствии с требованиями. По умолчанию все Hyper-V Integration Services, за исключением Hyper-V Guest Service Interface, включены на гостевых ОС.

Для того чтобы динамическая память Hyper-V работала эффективно, убедитесь, что Hyper-V Integration Services обновлены до последней версии и что гостевая операционная система поддерживает функцию динамической памяти. В противном случае Hyper-V может испытывать проблемы, так как память не может предоставляться динамически, и требования к памяти не могут быть удовлетворены должным образом.

С выходом Windows Server2016 Hyper-V Integration Services и соответствующие обновления могут быть установлены через Windows Update. Поэтому вам следует настроить свои виртуальные машины для получения обновлений, чтобы убедиться, что ваша инфраструктура Hyper-V использует последнюю версию Hyper-V Integration Services.

Мониторинг использования памяти и распределения ресурсов

В настоящее время на рынке представлено множество инструментов управления Hyper-V, которые позволяют отслеживать использование памяти и распределение ресурсов в средах Hyper-V. При включенной динамической памяти Hyper-V возможно переобеспечение ОЗУ и полный израсходованный объем памяти. Поэтому рекомендуется отслеживать объем ОЗУ, который вы выделяете различным виртуальным машинам на вашем хосте Hyper-V.

Для этой цели вы можете использовать встроенные инструменты мониторинга или приобрести стороннее программное обеспечение. Например, вы можете проверить состояние памяти ВМ через хост в Hyper-V Manager или гостевую ВМ в диспетчере задач.

Таким образом, мы можем отслеживать, как используются ресурсы памяти в системе. Однако учтите, что Hyper-V Manager и диспетчер задач показывают разные результаты использования памяти. Инструмент мониторинга гостевой ВМ не показывает фактические результаты, поскольку гостевая ВМ считает, что весь выделенный объем памяти действительно используется ее драйвером. На самом деле, хост, как правило, лучше осведомлен о том, как память распределяется между ВМ в инфраструктуре. Неиспользуемая память фактически переназначается другим ВМ, и это отражается в Hyper-V Manager.

Учитывайте стартовую память

Настройка стартовой памяти выше или ниже может значительно влиять на производительность Hyper-V. Вы должны увеличить стартовую память, чтобы гарантировать, что ОС и приложения, работающие на ней, запускаются в соответствии с требованиями. Это связано с тем, что Windows требует больше ОЗУ во время запуска, чем когда ОС простаивает.

Кроме того, во время операций установки или обновления количество доступной ОЗУ для гостевой ОС равно значению Startup RAM. Поэтому перед выполнением установки или обновлений критически важно убедиться, что значение Startup RAM соответствует минимальным требованиям к памяти выбранной ОС.

Обратите внимание, что если значение Startup RAM установлено слишком высоко, это также может отрицательно сказаться на производительности Hyper-V Dynamic Memory и общем использовании памяти. Поэтому рекомендуется назначать 512 МБ в качестве значения Startup RAM для гостевой ОС, чтобы она загружалась без перерывов.

Не забывайте о утечках памяти

При установке ограничений Hyper-V Dynamic Memory для определенной ВМ необходимо учитывать, что ваша инфраструктура может подвергаться утечкам памяти. Утечки памяти подразумевают постепенное уменьшение доступной памяти в результате неправильного выделения памяти. Обычно это происходит, когда приложение не может освободить память, которая была предоставлена только для временного использования. Если проблема не будет обнаружена до того, как будет нанесено серьезное повреждение, ОЗУ ОС может быть истощено, и приложение в конечном итоге потерпит неудачу.

Чтобы смягчить негативные последствия этой проблемы, рекомендуется установить инструмент мониторинга (например, RAMMap) и просканировать всю инфраструктуру на предмет любых несоответствий и выявления необычных случаев использования памяти приложениями. Также такие инструменты могут помочь вам определить минимальное и максимальное значения ОЗУ, которые будут наиболее подходящими для этой конкретной ВМ.

Настройте значения максимальной и минимальной ОЗУ

Для того чтобы Hyper-V Dynamic Memory работал как требуется, рекомендуется определить ограничения, которые система не должна превышать. Таким образом, использование памяти в вашей инфраструктуре будет эффективно контролироваться, что означает, что ВМ не будет потреблять слишком много или слишком мало памяти.

Осторожно установите значение буфера памяти

Один из лучших практик для Hyper-V Dynamic Memory – назначить соответствующее значение буфера памяти, которое указывает, сколько дополнительной памяти должно быть доступно для выбранной ВМ. Если значение буфера памяти установлено высоко, этот дополнительный объем памяти обычно используется для кэширования файлов в крупномасштабных ВМ и оптимизации операций ввода-вывода в системе.

В то же время, значение буфера памяти должно быть установлено низко, если запущено приложение, которое требует большого количества физической памяти. С уменьшенным значением буфера памяти, вы можете быть уверены, что доступная память не будет полностью потреблена одной ВМ.

Кроме того, если большой объем памяти уже был назначен ВМ, маловероятно, что она когда-либо потребует дополнительной памяти. Таким образом, имеет смысл делить неиспользуемые ресурсы памяти с другими ВМ, которым они нужны больше.

Обновляйте хосты Hyper-V по мере необходимости

Включайте функцию Hyper-V Dynamic Memory, когда она действительно необходима

Хотя функция Hyper-V Dynamic Memory является очень полезной и улучшает использование физической памяти, существуют случаи, когда статическое выделение памяти является предпочтительным вариантом. Поэтому рекомендуется рассматривать необходимость включения функции Hyper-V Dynamic Memory на определенной виртуальной машине. Например, некоторые приложения работают лучше, когда у них есть определенное количество оперативной памяти, которое они могут использовать без перерывов. Размер предварительно назначенной оперативной памяти остается прежним несмотря на колебания потребности в памяти.

Используйте функцию Hyper-V Dynamic Memory только с совместимыми приложениями

Несмотря на то что Динамическая память Hyper-V является чрезвычайно полезной функцией, которая улучшает использование физической памяти, в некоторых случаях предпочтительнее использовать статическое распределение памяти. Таким образом, следует рассмотреть, нужно ли включать Hyper-V Динамическую память на определенной виртуальной машине или нет. Например, некоторые приложения работают лучше, если у них есть определенное количество ОЗУ, которое они могут использовать без перерывов. Количество предварительно назначенной памяти остается неизменным, несмотря на колебания потребностей в памяти.

Поэтому рекомендуется заранее спланировать распределение физической памяти в вашей среде Hyper-V, чтобы избежать нехватки ОЗУ и предотвратить сбои приложений в будущем.

Используйте Hyper-V Динамическую память только с совместимыми приложениями

Перед установкой любого приложения на вашем хост-компьютере или гостье Hyper-V убедитесь, что это приложение может использоваться вместе с Hyper-V Динамической памятью. Чтобы проверить такую информацию, рекомендуется сначала ознакомиться с документацией по поддержке продукта, чтобы узнать о его функциях и системных требованиях. Такие предосторожности могут помочь избежать любых проблем с использованием и распределением памяти, которые могут возникнуть.

Заключение

После ознакомления с рекомендациями по использованию динамической памяти Hyper-V вы сможете использовать физическую память более эффективно и безопасно. Однако ваша виртуальная инфраструктура по-прежнему подвержена различным опасностям и угрозам, которые могут подорвать ее производительность. Для обеспечения безопасности вашей виртуальной среды наиболее рациональным вариантом является использование решения по защите данных. NAKIVO Backup & Replication – надежное, эффективное и доступное решение, которое предоставляет резервное копирование виртуальных машин, репликацию, резервное копирование в облако, копирование резервных копий, восстановление сайта и широкий набор функций.

Source:
https://www.nakivo.com/blog/full-overview-hyper-v-dynamic-memory-best-practices/