Как зарезервировать оперативную память на хост-разделе Hyper-V 2012 только для виртуальных машин?

Как зарезервировать оперативную память на хост-разделе Hyper-V 2012 только для виртуальных машин?

У меня возникла ситуация, когда узел кластера Hyper-V 2012 не может поддерживать 2 ВМ, когда я думаю, что должен. В настоящее время я экспериментирую с 96 ГБ ОЗУ и хочу запустить 2 ВМ по 47 ГБ (статическая ОЗУ). Это оставляет 2 ГБ для хоста, чего должно быть достаточно. Однако я не могу запустить вторую ВМ, потому что программное обеспечение жалуется, что для нее недостаточно памяти.

Затем я уменьшил каждую ВМ до 46 ГБ, но она все равно не поддерживает 2 ВМ. Запуск «taskmgr» с узла сообщает о 51 ГБ «используется» при «44,9 ГБ» доступных. Я не понимаю, почему ВМ на 46 ГБ может повлечь за собой 5 ГБ накладных расходов в разделе хоста. Если посмотреть на запущенные процессы, то указанная ОЗУ составляет менее 500 МБ.

Я хотел бы указать Hyper-V, чтобы он зарезервировал все, кроме 2 ГБ, исключительно для использования виртуальной машиной.

Кроме того, было бы еще лучше узнать, почему гипервизору "нужно" 5 ГБ. Есть ли способ узнать, что Hyper-V делает внутри с ОЗУ? Или есть новый расчет для Hyper-V 2012 относительно того, сколько ОЗУ на самом деле нужно хосту (поскольку 2 ГБ недостаточно)?

Редактировать - 2014-02-14

После обзора 4 различных хостов Hyper-V Server 2012r2 и 2008r2, невыгружаемый пул линейно растет с физически установленной оперативной памятью. Неважно, процессор AMD или Intel. Неважно, является ли хост частью кластера Windows или нет. Неважно, присоединен ли хост к домену или нет. И неважно, сколько виртуальных машин запущено на хосте (или сколько оперативной памяти потребляют эти виртуальные машины). Наконец, я считаю, что это поведение характерно и для 2012r1, потому что у меня были эти симптомы, когда все хосты 2012r2 были 2012r1.

Во всех случаях я обнаружил, что умножение объема установленной оперативной памяти (в ГБ) на 0,0425 покажет вам, сколько оперативной памяти (в ГБ) теряется в невыгружаемом пуле. (Этоочень(близкая оценка.)

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

PS: Я считаю важным отметить, что я писал "ГБ", но я просто использую то, что сообщает Windows. Числа, сообщаемые Windows и RAMMap, не являются ГБ/КБ, а на самом деле ГиБ/КиБ, поэтому умножьте результат расчета невыгружаемого пула на 1024, чтобы сравнить его с числом "K", сообщаемым RAMMap.

решение1

Источник

300 МБ для гипервизора плюс 32 МБ для первого ГБ оперативной памяти, выделенной каждой виртуальной машине, плюс еще 8 МБ для каждого дополнительного ГБ оперативной памяти, выделенной каждой виртуальной машине, плюс 512 МБ для операционной системы хоста, работающей на корневом разделе

Как правило, следует выделять не менее 512 МБ памяти для корневого раздела, чтобы обеспечить такие сервисы, как виртуализация ввода-вывода, поддержка файлов моментальных снимков и управление дочерними разделами.

300+32+(45*8)=692 МБ для первой ВМ

692+32+(45*8)=1084 для обеих виртуальных машин

1084+512=1596 МБ всего, по общему правилу

Так что это будет просто потребление гипервизора. Теперь, учитывая, что у вас используется более 5 ГБ, даже когда первая виртуальная машина подготовлена. Я бы посоветовал посмотреть вывод tasklist в командной строке и поискать серверные процессы, потребляющие оперативную память

Связанный контент