Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

18591 Windows Server, AD и Роли

Event ID 18591 Hyper-V: Не удалось выделить память для виртуальной машины

Обновлено: 15.08.2026 · Официальная документация ↗

Архитектура выделения памяти в гипервизоре Hyper-V

Событие 18591 (и смежное 18590) логируется источником Hyper-V-Worker в журнале Microsoft-Windows-Hyper-V-Worker-Admin. Сообщение: "Не удалось выделить память для виртуальной машины '[Имя_ВМ]': Недостаточно системных ресурсов для завершения операции (0x8007000E / Out of Memory)". Гипервизор Hyper-V резервирует блоки физической оперативной памяти хоста (Root Partition) для гостевых систем. Если свободной физической памяти (Non-paged pool / Host RAM) недостаточно для удовлетворения запроса на запуск или расширение Dynamic Memory, ВМ не запустится или аварийно остановится.

Факторы дефицита памяти хоста:

  • Суммарный объем статической памяти включенных ВМ превышает физический объем RAM хоста (Memory Overcommit).
  • Высокое резервирование памяти хостовой ОС (например, на хосте Hyper-V установлены роли SQL Server или IIS).
  • Фрагментация физической памяти (гипервизор не может найти непрерывный блок адресного пространства нужного размера).

Пошаговое дерево решений по балансировке памяти

Сценарий 1: Аудит потребления памяти виртуальными машинами через PowerShell

Выгрузите реальные показатели выделенной и динамической памяти всех ВМ на хосте.

# Анализ использования памяти виртуальными машинами
Get-VM | Select-Object Name, State, MemoryStartup, DynamicMemoryEnabled, 
    @{N='MemoryAssignedMB';E={$_.MemoryAssigned/1MB}}, 
    @{N='MemoryDemandMB';E={$_.MemoryDemand/1MB}} | 
    Sort-Object MemoryAssignedMB -Descending | Format-Table -AutoSize

Сценарий 2: Настройка динамической памяти (Dynamic Memory)

Для оптимизации распределения оперативной памяти включите динамическое масштабирование для ненагруженных ВМ.

  1. Откройте параметры виртуальной машины в Hyper-V Manager.
  2. Раздел Память (Memory) -> Установите флаг Включить динамическую память (Enable Dynamic Memory).
  3. Задайте Минимальный объем памяти (Minimum RAM) (например, 1024 МБ) и Максимальный объем (Maximum RAM).
  4. Настройте Буфер памяти (Memory Buffer) на уровне 20%.

Сценарий 3: Настройка резервирования памяти для хоста (Host Reserve)

Защитите саму систему управления хоста от исчерпания памяти виртуальными машинами через реестр.

# Установка резерва памяти для хостовой ОС Windows Server (в МБ)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization' -Name 'MemoryReserve' -Value 4096 -Type DWord

Типовые ошибки администраторов

  • Установка сторонних тяжелых служб на хост виртуализации: Хост Hyper-V должен выполнять исключительно роль гипервизора. Запуск СУБД или терминальных служб на родительском разделе неизбежно отбирает память у ВМ.
Виртуальные серверы не запускаются из-за нехватки ресурсов?
Неправильное планирование емкости (Capacity Planning) приводит к падению сервисов в пиковые часы. Закажите оптимизацию инфраструктуры Hyper-V в ITSTM: настроим Dynamic Memory, кластеризацию и отказоустойчивость.
💡 Практика специалистов: При расчете сайзинга хостов виртуализации всегда оставляйте 'золотой резерв' физической памяти хоста: базовые 4 ГБ для ядра ОС плюс 1 ГБ на каждые 16 ГБ оперативной памяти, выделенной гостевым машинам, под структуры таблиц страниц гипервизора (SLAT/EPT Overhead).

Частые вопросы (FAQ)

Что такое Smart Paging в Hyper-V?

Smart Paging — это технология гипервизора, позволяющая временно сбрасывать память ВМ на физический диск хоста в момент перезагрузки гостевой системы, если на хосте временно не хватает физической RAM для старта.

Почему для баз данных SQL не рекомендуется использовать Dynamic Memory?

Microsoft SQL Server резервирует максимальный объем доступной памяти под свой кэш буферного пула. Динамическое изменение RAM может вызывать агрессивное освобождение кэша и деградацию производительности СУБД.

Влияет ли архитектура NUMA на выделение памяти?

Да. Если размер памяти ВМ превышает размер локального NUMA-узла процессора (NUMA spanning), гипервизор вынужден обращаться к памяти соседнего сокета, что создает задержки и ошибки распределения при дефиците шины.

Можно ли изменить объем статической памяти ВМ на лету без выключения?

В Windows Server 2016 и новее для ВМ поколения Generation 2 поддерживается горячее добавление и удаление статической памяти (Hot Add/Remove RAM) без остановки гостевой ОС.

Полезные материалы
Рекомендуем