Hyper v динамическая память не работает

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Работа с памятью в Hyper-V

4 минуты чтения

Hyper-V — это платформа виртуализации в Windows Server. Hyper-V используется для создания виртуальных машин. Гипервизор также интегрирован в саму структуру облака Microsoft Azure. Эту роль можно включить и в некоторых выпусках Windows 10. Из этого следует, что можно переносить виртуальную машину из Windows 10 в Windows Server, в Azure и обратно без изменения формата виртуальной машины.

Интенсив по Виртуализации VMware vSphere 7

Самое важное про виртуализацию и VMware vSphere 7 в 2-х часовом онлайн-интесиве от тренера с 30 летним стажем. Для тех, кто начинает знакомство с виртуализацией и хочет быстро погрузиться в предметную область и решения на базе VMware

В этой статье рассмотрим тему использования оперативной памяти машины Hyper-V.

Динамическая память

Имеется два варианта выделения памяти виртуальным машинам. Может назначаться статический объем памяти или установить параметр динамической памяти. Если назначается статическая величина, то этот объем памяти остается неизменным, независимо в каком состоянии находится виртуальная машина.

При установке динамической памяти в Параметрах можно настроить следующие значения через Windows Admin Center или Консоль Hyper-V:

  • Startup Memory — это тот объем памяти, который нужен для старта гостевой машины. Он может быть таким же, как минимальный объем памяти, или может быть таким же, как максимальный объем выделенной памяти. После запуска виртуальная машина вместо этого будет использовать то значение, которое указано, как минимальный объем памяти.
  • Минимальный объем (Minimum Memory. — т.е. меньше указанного значения сервер виртуализации не выделит объем памяти при использовании динамического распределения. Если нескольким виртуальным машинам требуется больше памяти, Hyper-V может уменьшить объем другой виртуальной машины до тех пор, пока не будет достигнуто значение минимального ее объема. Вы можете уменьшить параметр минимального объема памяти во время работы виртуальной машины, но не можете увеличить его, когда виртуальная машина работает.
  • Максимальный объем памяти (Maximum Memory) — это максимальное значение объема памяти, которое будет выделять хостом виртуализации при включении динамической памяти для виртуальной машины. Вы можете увеличить максимальный объем памяти во время работы виртуальной машины, но не можете уменьшить его, пока виртуальная машина работает.
  • Memory Buffer — процент памяти, который хост должен выделить виртуальной машине в качестве резерва.
  • Memory Weight — позволяет настроить способ распределения памяти для разных гостевых систем по отношению друг к другу, запускающихся на том же узле виртуализации.

Как правило, когда вы настраиваете динамическую память, объем используемой памяти будет колебаться между значениями Минимум и Максимум. Следует проводить мониторинг использования памяти ВМ и настраивать эти значения так, чтобы они точно отражали фактические потребности виртуальной машины. в Случае, когда будет выделено минимальное значение памяти ниже того, что фактически необходимо для запуска виртуальной машины, эта нехватка может привести к тому, что узел виртуализации уменьшит объем памяти, выделенной для этого минимального значения памяти, что приведет к остановке работы виртуальной машины.

Smart paging — это специальная технология в Hyper-V, которая работает в определенных условиях при перезагрузке виртуальной машины. Smart paging использует файл на диске для имитации ОЗУ удовлетворения требований к загрузочной памяти, когда значение параметра Startup Memory (память, выделяемая на момент запуска) превышает значение Minimum Memory. Например, вы можете выставить стартовую память на 2048 МБ и минимальную память на 512 МБ для конкретной виртуальной машины. В сценарии, когда на узле виртуализации было доступно 1024 МБ свободной памяти, интеллектуальная подкачка позволит виртуальной машине получить доступ к требуемым 2048 МБ памяти.

Интеллектуальная подкачка активна только в том случае, если одновременно выполняются следующие три условия:

  • Виртуальная машина перезагружается.
  • На хосте виртуализации не хватает памяти для соответствия параметру Startup Memory.
  • Память не может быть освобождена от других виртуальных машин, работающих на том же хосте.

Smart paging не позволит виртуальной машине выполнять «холодный запуск«, если необходимый объем памяти для запуска недоступен, но доступен минимальный объем памяти. Функционал используется только тогда, когда виртуальная машина, которая уже работала, перезагружается и выполняются два вышеуказанных условия.

Расположение файла для каждой виртуальной машины можно изменять. По умолчанию они создаются в папке C:\ProgramData\Microsoft\Windows\Hyper-V . Файл интеллектуальной подкачки создается только при необходимости и удаляется в течение 10 минут после перезапуска виртуальной машины. Расположение файла можно изменить, используя графический интерфейс консоли Hyper-V или командлетом PowerShell, например:

Интенсив по Виртуализации VMware vSphere 7

Самое важное про виртуализацию и VMware vSphere 7 в 2-х часовом онлайн-интесиве от тренера с 30 летним стажем. Для тех, кто начинает знакомство с виртуализацией и хочет быстро погрузиться в предметную область и решения на базе VMware

Источник

Как исправить ошибку Hyper-V из-за нехватки памяти

Как исправить ошибку Hyper-V из-за нехватки памяти

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

Эта проблема вызвала у пользователей много стресса, и это понятно.

Очень важно решить эту проблему, особенно если вам нужно, чтобы ваша виртуальная машина работала правильно для работы.

Вот что один пользователь из форумов Microsoft Technet сказал об этой проблеме:

Попытка запустить Windows Server в Hyper-V, но из-за ошибки 0x8007000e вышла ошибка. Даже предоставил 2 ГБ ОЗУ, но все тот же MSG. С нескольких минут он работал нормально, но теперь перестал работать.

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

Ваш Hyper-V исчерпал память? Вот исправление

1. Закройте все виртуальные машины, которые вам не нужны

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

Это позволит правильно распределить вашу оперативную память, чтобы без проблем запустить виртуальную машину, с которой вы работаете.

2. Выберите динамическую память для виртуальной машины и убедитесь, что оптимальные требования выполнены

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

Вы должны иметь в виду, что даже динамические виртуальные машины имеют минимальные требования к памяти, объем, необходимый для оптимальной работы, и максимальный объем выделенной оперативной памяти.

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

Посетите эту ссылку для более подробного описания этого процесса.

3. Добавьте больше оперативной памяти на хост-компьютер и добавьте память в Hyper-V

Другой вариант исправления ошибки Hyper-V Run out of memory — добавить дополнительную оперативную память на хост-компьютер Hyper-V. Это, в свою очередь, позволит вам выделить больше оперативной памяти для виртуальной машины, которую вы пытаетесь использовать.

После того, как вы добавили больше оперативной памяти на хост-компьютер, выполните следующие действия, чтобы назначить новое значение для вашей виртуальной машины:

  1. Откройте диспетчер Hyper-V.
  2. Нажмите кнопку « Настройки» -> откройте вкладку «Память».
  3. Установите новое требуемое значение оперативной памяти , изменив значение в МБ.

Вывод

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

Мы хотели бы знать, если вы нашли это руководство полезным. Пожалуйста, не стесняйтесь поделиться этой информацией с нами, используя раздел комментариев ниже.

Источник

Динамическое распределение памяти в виртуальной машине не меняется, хотя на хосте есть доступная память.

В этой статье данная статья позволяет решить проблему, при которой распределение динамической памяти в виртуальной машине не меняется, хотя на хосте есть доступная память.

Применяется к: Windows Сервер 2008 R2 Пакет обновления 1
Исходный номер КБ: 2504962

Симптомы

Виртуальная машина, установленная на сервере Windows 2008 R2 SP1 Hyper-V с настроенной динамической памятью, может указывать на состояние памяти «Low» или «Warning» в оснастке Hyper-V управления. Кроме того, на хосте есть доступная память, которую можно быстро проверить, открыв диспетчер задач в родительском разделе. Открыв диспетчер задач, выберите вкладку Performance и нажмите кнопку Монитор ресурсов в нижней части интерфейса. Открыв монитор ресурсов, выберите вкладку Памяти. На дисплее будет отображаться, как используется память в родительском разделе. Откройте для просмотра событий и убедитесь, что ID события 3322 зарегистрирован в журнале Microsoft-Windows-Hyper-V worker/Admin. В сообщении события указывается, что дополнительная память не может быть выделена виртуальной машине, так как для расширения файла содержимого памяти недостаточно свободного дискового пространства.

ID события: 3322
Источник: Hyper-V-worker
Уровень: ошибка
Описание: : Не удается выделить больше памяти виртуальной машине, так как не хватает свободного места на диске, чтобы расширить файл содержимого памяти ‘

до . (Виртуальный машинный ID). Чтобы освободить пространство диска, удалите ненужные файлы с диска и попробуйте еще раз.

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

Источник

динамическая память включена, но не отвечает на некоторых виртуальных машинах

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

Свойство Сведения
Операционная система Windows Server 2016
Продукт или компонент Hyper-V
Уровень серьезности Предупреждение
Категория Конфигурация

В следующих разделах курсив указывает текст пользовательского Интерфейса, который отображается в анализатор соответствия рекомендациям для этой проблемы.

Проблема

На одной или нескольких виртуальных машинах возникли проблемы с драйвером, необходимым для динамическая память в гостевой операционной системе.

Влияние

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

Решение

Это ожидаемое поведение, если виртуальная машина загружается. Если виртуальная машина не загружается, убедитесь, что службы Integration Services обновлены до последней версии и что операционная система на виртуальной машине поддерживает динамическая память.

начиная с Windows Server 2016 службы integration services доставляются через Центр обновления Windows. Убедитесь, что виртуальные машины настроены на получение обновлений для получения последней версии служб Integration Services.

Динамическая память работает с конкретными версиями поддерживаемых гостевых систем. более ранние версии, чем Windows Server 2016 и Windows 10, см. в обзоре динамическая память Hyper-V .

Источник

Динамическая память в Hyper-V: принцип работы и настройка

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

Ситуация изменилась с выходом Windows Server 2008 R2 SP1. Hyper-V получил механизм динамического распределения памяти (Dynamic Memory), благодаря которому память может свободно перераспределяться между виртуальными машинами прямо в процессе работы. Давайте познакомимся с основными принципами работы Dynamic Memory поближе.

Принцип работы

При запуске виртуальной машины ей выделяется объем памяти, равный Startup RAM. Если вдруг нужного объема памяти не окажется в наличии — машина откажется стартовать. В гостевой ОС (при установке служб интеграции) работает компонент Dynamic Memory VSC (DMVSC), который собирает сведения об используемой в данный момент памяти и передает их посредством виртуальной шины VMBus провайдеру Dynamic Memory VSP (DMVSP), работающему в хостовой ОС. DMVSP, в свою очередь, передает данные балансировщику памяти – Dynamic Memory Balancer.

Балансировщик вычисляет для каждой виртуальной машины некий идеальный объем памяти. Формула достаточно проста: идеальный объем равен потребляемой в текущий момент памяти плюс резерв (определенный процент от потребляемой памяти, задаваемый вручную).

Затем вычисляется значение нагрузки Memory Pressure – процентное отношение вычисленного идеального объема к объему, фактически выделенному виртуальной машине. Этот параметр показывает, как на данный момент обстоят дела с памятью на виртуальной машине: малые значения означают, что памяти достаточно, большие – что использование памяти подходит к пределу. Если же значение Memory Pressure превышает 100%, то значит памяти сильно не хватает, и виртуальная машина активно использует файл подкачки.

На основании изменений нагрузки в течение времени балансировщик вычисляет пороговые значения нагрузки – минимальное и максимальное. Если нагрузка превышает максимальное пороговое значение – то виртуальной машине добавляется память. Если же значение нагрузки опускается ниже минимального порогового значения – это означает, что излишек памяти можно отобрать.

Добавление памяти

Если нужно добавить памяти – то диспетчер памяти стека виртуализации выделяет виртуальной машине дополнительную память. DMVSC, используя технологию горячего добавления памяти (Hot Add RAM) расширяет адресное пространство виртуальной машины, после чего соответствующие виртуальные адреса сопоставляются с выделенными физическими адресами. Обратите внимание, что для работы необходима поддержка Hot Add RAM на уровне гостевой ОС.

Удаление памяти

Для удаления памяти используется механизм Memory Ballooning. Когда приходит команда на удаление памяти – DMVSC проверяет, какие области памяти на данный момент не используются. Из них отбирается объем, предназначенный для удаления, и затем эти адреса захватываются DMVSC в монопольный доступ. После этого захвата область памяти помечается как Driver Locked и становится недоступна для использования операционной системой. Как только память была захвачена — соответствующие виртуальные адреса отвязываются от физических адресов, и соответствующие ячейки памяти могут быть переданы другим виртуальным машинам. Удаление памяти происходит для системы абсолютно незаметно, вся захваченная память по-прежнему остается системе видна. В дальнейшем, если виртуальной машине нужно добавить память – соответствующее адресное пространство освобождается и связывается с выделенной областью памяти.

Настройка

Dynamic Memory впервые появилась в Windows Server 2008R2, а точнее — с выходом SP1. Вот так безрадостно выглядят настройки памяти в Windows Server 2008R2 без установленного сервис-пака. Каждой виртуальной машине выделяется фиксированный объем памяти, который определяется параметром Startup RAM.

После установки SP1 все гораздо веселее 🙂 В окне Memory конфигурации виртуальной машины появляется возможность выбора режима выделения памяти: Static/Dynamic. При выборе Static – память будет задаваться фиксированно, как и раньше. А вот если выбрать Dynamic, то станут доступны новые параметры настройки. При использовании Dynamic Memory объем памяти виртуальной машины определяется уже не одним параметром, а несколькими. Вот они:

Startup RAM — минимальный объем памяти, выделяемый виртуальной машине при ее запуске. По умолчанию равен 512 Мбайт. Если система не сможет выделить соответствующий объем памяти – виртуальная машина не запустится;
Maximum RAM — максимальный объем памяти, который теоретически может быть выделен виртуальной машине. По умолчанию задается максимальное возможное значение (64Гб в Server 2008R2 и 1Тб в Server 2012);
Memory Buffer — задается в процентах, и может принимать значения от 5% до 2000%. Этот параметр предназначен для того, чтобы держать определенный объем памяти свободным, на случай внезапных пиковых нагрузок. К примеру, если Memory Buffer равен 20% — система всегда будет пытаться обеспечить, чтобы у виртуальной машины было свободно не менее 20% памяти. Memory Buffer задается именно в процентах, а не в мегабайтах, потому, что зависит от текущего потребления памяти;
Memory Weight — определяет приоритет виртуальной машины при распределении памяти в случае ее нехватки. Именно этот параметр определяет, у кого память будет в первую очередь отобрана, и кому в первую очередь будет добавлена. До тех пор, пока у сервера имеется свободная память – веса виртуальных машин не играют никакой роли. Но как только память подходит к концу и нужно ее перераспределить – система отбирает память у виртуальных машин с наименьшим приоритетом, и отдает тем, у кого приоритет наиболее высокий.

Memory Reserve — параметр, позволяющий зарезервировать определенный объем памяти для использования хостовой ОС. Теоретически может возникнуть такая ситуация, когда виртуальные машины разберут всю память и хостовой ОС ничего не останется. Понятно, что нехватка памяти в хостовой ОС может иметь неприятные последствия для всех виртуальных машин, которые на ней запущены. Чтобы этого избежать – можно использовать параметр Memory Reserve, позволяющий зарезервировать определенный объем памяти для использования хостовой ОС. Зарезервированный объем будет недоступен для использования виртуальными машинами.

Этого параметра нет в настройках и изменить его можно только через редактирование реестра. Для этого надо создать ключ типа DWORD с названием MemoryReserve в разделе реестра HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Virtualization . Значение этого ключа и определяет объем резервируемой памяти в мегабайтах. Максимальное значение – 4096 (4 Гбайт), больше устанавливать бесполезно. Даже если установить 8192 – все равно система зарезервирует только 4 Гбайт памяти.

В Windows Server 2012 в дополнение к Startup RAM (объем памяти при старте) появился параметр Minimum RAM (минимальный объем памяти). Если в Server 2008R2 эти параметры эквивалентны, то в Server 2012 они сделаны полностью независимыми друг от друга. Такой подход позволяет более гибко управлять распределением памяти. Например, для старта машине можно выделить 4ГБ памяти, а на случай бездействия задать минимум в 512МБ. Кстати, настройки Minimum RAM и Maximum RAM теперь можно крутить прямо на работающей машине.

Примечание: Если быть точным, то в Server 2008R2 технически все же есть возможность с помощью WMI/PowerShell выставить минимальное значение памяти меньше, чем стартовое. Если интересно, то вот здесь есть описание и текст скрипта.

Smart Paging

Чуть выше я писал, что если система не сможет выделить объем памяти Startup RAM, то виртуальная машина не запустится. Это не совсем так.

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

Для этого случая в Windows Server 2012 появилась технология Smart Paging, которая дает возможность при недостатке памяти для загрузки виртуальной машины использовать файл подкачки на хосте (Smart Paging file).

Smart Paging вещь неоднозначная. Хотя он и обеспечивает гарантированный запуск виртуальных машин при отсутствии доступной физической памяти, при этом значительно понижается производительность, ведь скорости доступа к диску в разы меньше, чем к оперативной памяти. Поэтому использование смарт-пейджинга сильно ограничено. Smart Paging нельзя включить принудительно, он активируется только при совпадении нескольких факторов:

1) Виртуальная машина была перезагружена;
2) На хосте отсутствует доступная физическая память, необходимая для их запуска;
3) Нет возможности забрать память у других виртуальных машин, запущенных на этом хосте;
4) Суммарный запрашиваемый всеми запущенными машинами объём памяти превышает физическую не более чем в два раза.

Smart Paging не сработает, если:

1) Виртуальная машина запускается из выключенного состояния, а не была перезагружена;
2) Не хватает памяти для уже запущенной виртуальной машины;
3) Виртуальная машина перенесена при отказе одного из узлов кластера.

Примечание: Если честно, то с использованием смарт-пейджинга на кластерах ситуация мне не совсем ясна. Где то говорится о том, что при переносе машин с одного узла кластера на другой он не работает, а где то наоборот — что Smart Paging предназначен как раз для работы в кластерах. В данный момент у меня нет возможности собрать кластер и проверить это на практике, так что утверждать, где правда, не возьмусь.

Smart Paging — механизм временный и используется он только в процессе запуска виртуальной машины. Сразу после загрузки операционной системы гипервизор, используя Memory Balooning, заставляет машину сократить память до минимального объёма. Как только машина переходит на собственные ресурсы, файл подкачки немедленно удаляется, использовать его в процессе работы невозможно.

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

Мониторинг

Мониторинг потребления памяти виртуальной машиной нужно осуществлять из хостовой системы. Тот же Task Manager в гостевой ОС всегда будет показывать пиковое значение, а не текущее. Увидеть, сколько фактически выделено памяти из гостевой ОС невозможно, для этого нужно использовать консоль Hyper-V Manager.

Для примера возьмем виртуальную машину TestVM. Как видно из показаний Hyper-V Manager, на данный момент она потребляет всего 512 МБ (Minimum RAM).

В самой же виртуальной машине картина другая. Task Manager показывает, что машине выделено 4Гб, из которых она потребляет 3.8 Гб. И еще, обратите внимание на незаметный параметр Maximum memory, который показывает максимальный объем памяти, доступный виртуальной машине. Правда есть он только в Windows 8 и Server 2012.

Поддерживаемые операционные системы

Для использования Dynamic Memory необходима поддержка как хостовой, так и гостевой системы. Вот список операционных систем, поддерживающих Dynamic Memory.

  • Microsoft Windows Server 2008 R2 Standard, Enterprise, Datacenter SP1;
  • Microsoft Hyper-V Server 2008 R2 SP1;
  • Microsoft Windows Server 2012 Standard, Datacenter;
  • Microsoft Windows 8 Pro, Enterprise.

Гостевые системы (после установки служб интеграции):

  • Windows Server 2003 Standard, Web, Enterprise, Datacenter SP2;
  • Windows Server 2008 Standard, Web, Enterprise, Datacenter SP2;
  • Windows Server 2008 R2 Standard, Web, Enterprise, Datacenter SP1;
  • Windows XP Professional SP3;
  • Windows Vista Enterprise, Ultimate SP2;
  • Windows 7 Enterprise, Ultimate SP1;
  • Windows 8 Pro, Enterprise.

Заключение

Технология Dynamic Memory дает возможность представить оперативную память не в виде набора микросхем, а как свободно распределяемый ресурс. Однако надо понимать, что не смотря на всю гибкость настроек Dynamic Memory не позволяет выделить ресурсов больше, чем есть физически, а всего лишь помогает распределить имеющиеся ресурсы наилучшим образом.

Ну вот и все, что я хотел рассказать о динамической памяти. Надеюсь эта статья поможет вам в нелегком деле виртуализации 🙂

Источник

Читайте также:  Не работает блок управления печкой веста
Оцените статью