Потребление памяти 2012 R2 Core vs GUI — очень интересный вопрос и как обычно он очень мало и бегло освещён в интернете. Акцент конечно же на виртуальные машины, именно при использовании VM требуется сократить ресурсы (память) для каждой, чтобы впихнуть на хост виртуализации как можно больше машин.
Первое, что нужно упомянуть: при использовании серверов Windows в виртуальной среде нужно забыть про все редакции Windows ниже 2012 R2. Никаких 2008 R2 и уж тем более ниже. Почему 2012 R2:
- Виртуальная машина поколения 2 доступна только для 2012 R2 и выше. ОС внутри такой машины знает, что она виртуальная и ведёт себя адекватно. Ускоренная загрузка/выключение;
- Диски VHDX со всеми их преимуществами;
- Сетевой стек быстрее ~30%;
- У 2012 R2 полностью переписанный/перелопаченный код и больше ролей для Core-режима;
- Сервер 2012 R2 позволяет конвертацию GUI в Core и обратно.
Порядок работы
- Ставим VM-машину 2012 R2 с GUI;
- Настраиваем ОС со всеми ролями и обновлениями, которые нужны;
- Настраиваем на машине WinRM, RDP;
- Устанавливаем на своей рабочей станции RSAT;
- Проверяем управление со своего рабочего стола через RDP, Server Manager;
- Оцениваем потребление памяти;
- Переводим машину в Core;
- Оцениваем потребление памяти;
- Режем память для машины в Hyper-V;
- Запускаем в продакшен.
Пара замечаний:
- Режим с минимальным графическим интерфейсом мне видится ненужным, всё необходимое получаем удаленно со своей рабочей станции, поэтому на сервере чистый Core;
- По возможности удаляем WoW64 как дополнительную поверхность атаки на сервер, в этом случае GUI деинсталлируется автоматически;
- Потребление памяти смотрим через Диспетчер задач-Производительность (Диспетчер задач одно из немногих приложение, которое работает в графическом режиме из под Core), какая-то точность здесь не нужна, вполне подходит грубая оценка: было примерно столько, а стало примерно вот столько.
Реализация
Мне нужно было установить второй контролер домена в виртуалку взамен упавшего физического. Почему в виртуалку? Да потому что использовать для резервного DC в небольшой сети отдельный физический сервер это неправильно. Мне выделили лицензию 2008 R2 Standard, поставил машину 1 поколения, затем установил ВСЕ обновления, в результате в Диспетчере устройств нашлось два неизвестных устройства 🙂
Ставить драйвера под сервер? В виртуальную машину? Это первое. Установил роль AD DS, служба не стартует. Не стал даже разбираться, снёс и поставил 2012 R2 Evaluation 180 дней. Всё нашлось-подхватилось, для ввода нового DC 2012 R2 существующий уровень леса должен быть не ниже 2003, прошла репликация, замечательно. Вот, что говорят best practice от MS:
- Для каждого домена очень желательно иметь минимум два доменных контроллера;
- В каждом домене желательно использовать минимум один доменный контроллер на физической машине;
- Необходимо отключить синхронизацию времени через компоненты интеграции между виртуальной машиной и хостом;
- Восстановление доменных контроллеров должно осуществляться только специализированными средствами резервного копирования/восстановления, которые поддерживают восстановление Active Directory.
Восстановление состояния при помощи дифференциальных дисков, снимков виртуальной машины, копирования файлов виртуальных дисков может привести к возникновению проблем с репликацией Active Directory.
Потребление памяти Core vs GUI
Сам процесс установки/настройки приводить не буду, неинтересно и уже многие десятки раз расписано в интернете. Итак, всё настроено, смотрим память в GUI, из ролей только AD DS и DNS.

Замер точечный "на момент", во временном же интервале расход памяти плавает где-то плюс/минус 20-30MB рядом с указанным значением. Опять же грубая оценка, что в пиковой нагрузке расход может быть на 20% больше. Это получается чуть больше гигабайта.
Теперь сносим WoW64, GUI удаляется автоматически, перезагрузка и снова смотрим память, набрав taskmgr
в командной строке.

Потребление памяти снизилось на 240MB в среднем. Ну и в пике ожидается не более 720-730MB. Как-то так.
Теперь режем память в Hyper-V. У себя не стал жадничать, жадничать нехорошо и оставил машине 1GB памяти. Такой расход памяти на машину меня более чем устраивает.

Выводы
Выводы следующие и они помогают развеять мифы интернета:
- Миф первый — для того чтобы VM Windows с GUI хоть как-то волохалась нужно 2GB памяти и не меньше. Конкретно для машины поколения 2 с GUI и парой ролей на ней 1,5GB выше крыши;
- Миф второй — ставим Core и на 512MB всё будет летать. 512MB памяти для машины означают, что даже без нагрузки 100+MB будут свопиться на диск.