Динамическая память – выставление минимального объёма ниже стартового значения

Возможно это ни для кого не новость, но сам я, почему-то, упустил эту возможность в Hyper-V R2 SP1, обнаружил её в интерфейсе Windows Server 8, разобрался, оказывается, она есть и сейчас. Как вы, наверное, догадались из названия заметки, речь пойдёт о возможности выставления минимального объёма динамической памяти для виртуальной машины.

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

Кажется, что всё совершенно логично. Однако, что произойдет, если вы задали стартовым значением для сервера пару гигабайт, а на деле сервер использует от силы один гигабайт памяти? Ничего не произойдёт – машине будет выделен объём памяти, не меньше указанного стартовым значением. Однако, технически у вас есть возможность задать также и параметр минимального значения, который может быть ниже стартового. Параметр не отображается в интерфейсе, задать его можно лишь средствами WMI/PowerShell. Правда, интерфейс таки даёт информацию о том, что такая возможность существует: если мы изменим минимальное значение, то получим предупреждение, что при любом изменении стартового значения через GUI, минимальное значение будет выставлено равным стартовому.

В Windows Server 8 параметр минимального значения отображается в интерфейсе:

Почему в текущей версии значение не задаётся интуитивно понятно? Наверное, разработчики пробуют защитить нас от ситуации, когда машины работали с неким минимальным значением памяти, далее были остановлены… и не смогли стартовать снова, так как свободной памяти оказалось меньше, чем требуется стартовым значением. В Windows Server 8 гипервизор сможет справиться с этим при помощи новых технологий Second Level Paging, о которых мы поговорим после выхода Beta версии. Сейчас же всё внимание на Hyper-V R2 SP1.

Я не буду приводить текст скрипта тут, ибо он есть на блоге Бена. Даю прямую ссылку на архив с данным скриптом. Если наши гуру PowerShell подксажут более короткий путь через PoSh вместо WMI, буду благодарен.