Назад | Перейти на главную страницу

SLES Hyper-V-Guest не видит всю оперативную память

У меня проблема с моей Hyper-V-Guest, системой SLES, на стандартном хосте Windows 2016. В Hyper-V я назначил этой машине 120000 МБ памяти. Но если я наберу free -m в гостевой системе SLES я получаю следующий результат: total used free shared buffers cached Mem: 67961 2038 65923 219 11 807 -/+ buffers/cache: 1219 66742 Swap: 122879 0 122879 Итак, всего 66 ГБ ОЗУ.

Я пытался включить / выключить динамическую память, NUMA, изменил параметры NUMA, но безуспешно. В свое время больше памяти показывал free -m, но после перезапуска у меня снова возникла та же проблема.

На хосте Windows выделяется память, поэтому, если я запускаю виртуальную машину (на этом хосте нет других виртуальных машин), я вижу, что используется 124/256 ГБ.

На данный момент у меня нет идей.

Изменить: я запустил машину Ubuntu в качестве гостя с теми же настройками, и он показывает правильный объем оперативной памяти. Я получил виртуальную машину SLES как образ vmWare и преобразовал дисковый файл в Hyper-V. Теперь я обновил систему SLES, которая заменила специфичное для vmWare ядро ​​простым (если я правильно понял), но проблема все та же.

Иногда размещение вопроса в Интернете дает новые идеи.

В журнале Linux я обнаружил следующее сообщение:

dmesg | grep -i memory WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losng 51008MB of RAM

Я не знаю, предоставляет ли Microsoft неисправный Hyper-V-BIOS, или Linux здесь ошибочен, или это комбинация обоих. Проблема в том, что MS-стек обновлен, и я не могу обновить ядро ​​Linux, потому что для программного обеспечения, запущенного на виртуальной машине, нужна эта версия.

Решение: вместо увеличения оперативной памяти я уменьшил ее до 40 ГБ. Это не вызывает сообщение об ошибке Linux. Когда я запускаю бизнес-приложение, которое хочу запустить на виртуальной машине, Hyper-V динамически без проблем выделяет виртуальной машине больше памяти (в моем случае до 105 ГБ). Ура!