Максимальное увеличение плотности виртуальных машин в Hyper-V (часть 5)

Опубликовано: 19 Апреля, 2023

  • Максимальное увеличение плотности виртуальных машин в Hyper-V (часть 6)
  • Максимальное увеличение плотности виртуальных машин в Hyper-V (часть 7)

Введение

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

Динамическая память

Начиная с Windows Server 2008 R2 Hyper-V поддерживает использование динамической памяти. Динамическая память позволяет настроить виртуальную машину для использования диапазона памяти, а не фиксированного объема памяти. Таким образом, виртуальная машина может запрашивать или освобождать память по мере необходимости в пределах, установленных администратором.

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

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

Изображение 15392
Рисунок A: Hyper-V поддерживает использование виртуальной памяти.

Как видите, доступно несколько различных настроек виртуальной памяти. Эти настройки включают в себя:

Начальная оперативная память — объем физической памяти, необходимый для загрузки виртуальной машины.

Минимальный объем оперативной памяти — наименьший объем памяти, который когда-либо потребуется виртуальной машине.

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

Буфер памяти — дополнительная память, предоставляемая виртуальной машине в качестве буфера на случай нехватки памяти. Буфер выражается в процентах. Например, если виртуальной машине в настоящее время требуется 1000 МБ памяти, а буфер установлен на 20 %, то Hyper-V попытается выделить виртуальной машине 1200 МБ вместо запрашиваемых 1000 МБ. Этот буфер помогает со стабильностью и производительностью.

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

Хотя динамическая память является стандартной функцией Hyper-V, не каждая гостевая операционная система поддерживает использование динамической памяти. Гостевые операционные системы, которые Microsoft в настоящее время поддерживает для использования с динамической памятью, включают:

  • Виндовс Сервер 2012
  • Windows Server 2012 R2
  • Виндовс 8 и 8.1
  • Windows 7
  • Windows Server 2008 R2 (SP1 и выше)
  • Windows Server 2008 (SP2 и выше)
  • Windows Vista (SP1 и выше)
  • Windows Server 2003 R2 (SP2 и выше)
  • Windows Server 2003 (SP2 и выше)
  • SUSE Linux Enterprise Server 11 (SP3 и выше)
  • Убунту 13.10

Файл смарт-пейджинга

Как я объяснял ранее, Microsoft различает минимальную память и загрузочную память. Иногда виртуальным машинам для загрузки требуется больше памяти, чем требуется для фактической работы. Хотя иногда можно высвободить значительный объем физической памяти, различая загрузочную память и минимальную память, это различие может привести к проблемам на хост-серверах с высокой плотностью.

Чтобы показать вам, что я имею в виду, представьте на мгновение, что конкретной виртуальной машине требуется 1 ГБ памяти для загрузки, но после завершения загрузки и стабилизации гостевой операционной системы виртуальная машина может работать с 512 МБ памяти. Поскольку мы говорим о способах максимизации плотности виртуальных машин, давайте также представим, что рассматриваемый хост-сервер имеет максимально возможное количество работающих на нем виртуальных машин и что на нем нет лишней памяти.

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

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

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

Самое важное, что нужно понять о смарт-файле подкачки, это то, что, хотя он работает аналогично файлу подкачки Windows, это совершенно отдельный механизм. Файл подкачки Windows существует в виде файла с именем Pagefile.sys. Этот файл является частью операционной системы Windows. Это означает, что файл подкачки виртуальной машины существует на виртуальном жестком диске. Точно так же может быть файл подкачки для операционной системы хоста. Этот файл подкачки существует на физическом загрузочном диске сервера.

Файл подкачки Windows можно использовать для восполнения всевозможных нехваток памяти. Например, если виртуальной машине предоставлено максимум 4 ГБ памяти, а приложению требуется 5 ГБ, то для компенсации разницы используется файл подкачки виртуальной машины.

Умный файл подкачки совершенно другой. В то время как файл подкачки Windows виртуальной машины существует на виртуальном жестком диске виртуальной машины и используется для преодоления нехватки памяти, интеллектуальный файл подкачки существует вне виртуальной машины и используется только тогда, когда для виртуальной машины недостаточно физической оперативной памяти. для перезагрузки. Это единственный раз, когда используется интеллектуальный файл подкачки. Интеллектуальный файл подкачки не используется, когда виртуальная машина запускается из выключенного состояния или в ситуациях аварийного переключения.

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

Вы можете управлять расположением файла интеллектуальной подкачки, открыв диспетчер Hyper-V, щелкнув правой кнопкой мыши виртуальную машину и выбрав команду «Настройки» в контекстном меню. После этого Windows отобразит диалоговое окно «Параметры» для выбранной виртуальной машины. Вы можете увидеть параметр Smart Paging File Location, показанный на рисунке B.

Изображение 15393
Рисунок B. Местоположение файла смарт-подкачки настраивается для каждой виртуальной машины.

Вывод

Как видите, использование динамической памяти может значительно улучшить плотность виртуальных машин. В части 6 я планирую завершить серию, рассмотрев некоторые функции Windows Server 2012 R2, которые могут помочь повысить плотность виртуальных машин.

  • Максимальное увеличение плотности виртуальных машин в Hyper-V (часть 6)
  • Максимальное увеличение плотности виртуальных машин в Hyper-V (часть 7)