Назад | Перейти на главную страницу

Использование памяти / RAM для виртуальных машин - как это влияет на хост?

Мы только что купили новый сервер для нашего отдела разработки. Он имеет 32 ГБ памяти. Я решил установить Server 2008 R2 вместо Hyper-V R2, главным образом потому, что, если этот сервер когда-либо потребуется для выполнения других задач, мне нужна полноценная ОС.

Какой объем памяти должен использовать ОС хоста? Поскольку ОС 64-битная, она могла бы использовать все 32 ГБ, если бы захотела. Но как только я выделяю и фактически запускаю виртуальную машину, скажем, с 10 ГБ памяти, знает ли хост, что у него есть только 22 ГБ для использования? Я предполагаю, что он будет использовать все, что доступно, в зависимости от того, что используют виртуальные машины, и соответствующим образом корректировать себя, когда виртуальные машины поднимаются и опускаются?

Есть неплохая статья от MS Вот. Обычно я зарезервировал 2 ГБ для родительского раздела, а затем увеличивал его для каждой виртуальной машины или объема виртуальной памяти.

Согласно статье:

«Хорошим стандартом для накладных расходов на память каждой виртуальной машины является 32 МБ для первого 1 ГБ виртуальной ОЗУ плюс еще 8 МБ на каждый дополнительный ГБ виртуальной ОЗУ. Это следует учитывать при расчете количества виртуальных машин для размещения на физическом сервер. Накладные расходы на память зависят от фактической нагрузки и объема памяти, назначенной каждой виртуальной машине ».

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

Однако он может быть выделен только из виртуального пула и выделяться из реальной ОЗУ после первого использования страниц, поэтому вы можете не увидеть, что 10 ГБ сразу удаляются из свободной ОЗУ. Это означает, что ОС может использовать ОЗУ для таких вещей, как дисковый кеш, до тех пор, пока виртуальная машина действительно это нужно.