1

I have a problem with my Hyper-V-Guest, an SLES system, on a Windows 2016 Standard Host. In Hyper-V, I assigned 120000MB of memory to this machine. But if I type free -m in the SLES guest, I get the following output: total used free shared buffers cached Mem: 67961 2038 65923 219 11 807 -/+ buffers/cache: 1219 66742 Swap: 122879 0 122879 So only 66 GB RAM.

I tried turning on/off dynamic memory, NUMA, changed NUMA parameters, but no success. At one time, more memory was shown by free -m, but after a restart I had the same problem again.

On the Windows host, the memory is allocated, so if I start the VM (no other VMs on this host), I see 124/256 GB in use.

At the moment I am out of ideas.

Edit: I started an Ubuntu machine as guest with the same settings, and it shows the correct amount of RAM. I got the SLES VM as a vmWare Image, and converted the disk file to Hyper-V. I now upgraded the SLES system, which replaced the vmWare specific kernel with a plain one (if I saw that correctly), but the problem is still the same.

GxB
  • 431
  • 1
  • 4
  • 9

1 Answers1

0

Sometimes posting a question on the internet gives some new ideas.

I found the following message in the Linux log:

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

I do not know if Microsoft provides a faulty Hyper-V-BIOS, or if Linux is wrong here, or if it is a combination of both. The problem is that the MS-stack is up to date and I cannot upgrade the Linux kernel because the software running in the VM needs this version.

Workaround: instead of increasing the RAM, I reduced it to 40GB. This does not trigger the Linux error message. When I start the business application I want to run in the VM, Hyper-V dynamically assigns more memory (in my case up to 105GB) to the virtual machine without problems. Horray!

GxB
  • 431
  • 1
  • 4
  • 9