Потребление памяти 2012 R2 Core vs GUI

Потребление памяти 2012 R2 Core vs GUI - очень интересный вопрос и как обычно он очень мало и бегло освещён в интернете. Акцент конечно же на виртуальные машины, именно при использовании VM требуется сократить ресурсы (память) для каждой, чтобы впихнуть на хост виртуализации как можно больше машин. 

Первое, что нужно упомянуть - при использовании серверов Windows в виртуальной среде нужно забыть про все редакции Windows ниже 2012 R2. Никаких 2008 R2 и уж тем более ниже. Почему 2012 R2:

  1. Виртуальная машина поколения 2 доступна только для 2012 R2 и выше. ОС внутри такой машины знает, что она виртуальная и ведёт себя адекватно. Ускоренная загрузка/выключение;
  2. Диски VHDX со всеми их преимуществами;
  3. Сетевой стек быстрее ~30%;
  4. У 2012 R2 полностью переписанный/перелопаченный код и больше ролей для Core-режима;
  5. Сервер 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.

Потребление памяти 2012 R2 Core vs GUI

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

Теперь сносим WoW64, GUI удаляется автоматически, перезагрузка и снова смотрим память, набрав taskmgr в командной строке.

Потребление памяти 2012 R2 Core vs GUI

Потребление памяти снизилось на 240MB в среднем. Ну и в пике ожидается не более 720-730MB. Как-то так.

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

Потребление памяти 2012 R2 Core vs GUI

Выводы

Выводы следующие и они помогают развеять мифы интернета:

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *