2
  • Хост: Windows 7 64x бит, 6 ГБ ОЗУ
  • Гость: Red Hat 64x бит

Ресурсы хост-машины без запуска виртуальных машин:

Ресурсы Windows

[Случай I] Гостевая машина с 2 ГБ памяти

Когда я запускаю процесс потребления памяти в гостевой системе, я получаю фатальную ошибку от VirtulBox (это фатально, потому что происходит сбой системы)

 Error ID: HostMemoryLow
 Severity: Non-Fatal Error

Память хоста при ошибке (МБ):

 Total: 6002
 Cached: 2149
 Available: 2133
 Free: 9

Кэшированная память Afaik содержит неактивные данные, которые не используются или уже реплицируются в разделе подкачки, и система должна иметь возможность освобождать их при необходимости, а современные ОС сохраняют кешируемую память, чтобы максимально эффективно использовать память большего размера. Я предполагаю, что причина проблемы в том, что либо Windows не может внезапно освободить большой объем памяти, либо VirtualBox не считает кэшированную память доступной для выделения и возвращает ошибку, как только свободная память заполнена ( но всё же кешируется).

[Случай II] Гость с отложенным выделением памяти

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

VBoxManage setextradata "VM_name" VBoxInternal/RamPreAlloc 1

Я столкнулся даже с еще более неблагоприятным сценарием, когда виртуальная машина отказывается запускаться с более чем 1280 МБ и выдает ошибку, что на хост-машине недостаточно памяти для выделения, а объем свободной памяти Windows на мгновение падает до 8, но кеш-память остается прежней (резервирует большой объем памяти) и окна никогда не освобождают его!

 The fatal variant of VINF_EM_NO_MEMORY (VERR_EM_NO_MEMORY)
 Result Code: E_FAIL (0x80004005)
 Component: Console
 Interface: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

VirtualBox не может выделить более 1280 МБ памяти независимо от свободной или кэшированной памяти!

1 ответ1

1

Решена проблема, заключавшаяся в установке 2 частей ОЗУ с разной пропускной способностью шины (1066 МГц и 1660 МГц), что привело к конфликту. После удаления одного из них VirtualBox смог выделить более 2 ГБ ОЗУ для ВМ, даже имея всего 4 ГБ общей памяти в хост-машина

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .