I am pretty new to Ubuntu, and want to change from my Windows enviroment, to a Linux Distro. Since most (consumer) Linux software is designed for Ubuntu, I chose this distribution. Everything works fine, but one of teh most important features, Virtual Machines, are experiencing some critical problems.
When I run a VM under high load, this does not get distributed evenly across all cores. I tried altering the CPU/core settings in the VM settings, and different hypervisors:
If I run a CPU stress test in Ubuntu, all cores run fine and synchronised. If I run a stress test in a VM, some cores get a 100% load, and other cores are at 10%. The loaded cores, and the amount of loaded cores change. So, one time, core1 and 3 have a 100% load, the other time only core4 has 100% load.
Under "software update" > "Additional drivers", the Intel Microcode device shows as "unknown". It seems to me that this plays part in the problem.
I am really stuck on how to troubleshoot or fix this, so any input is appreciated.
EDIT: I tested some more with VMware:
- When I configure two cores, i get an vcpu error after a few minutes
- When I configure only one core, only one core on the virtual host gets used When I configure four cores, all cores are used. However,
- When I start a second VM with four cores configured, I get real
strange, uneven and unstable core loads.
EDIT: So I updated my BIOS, reinstalled Ubuntu, no change. Updated my microcode from ftp.us.debian.org/debian/pool/non-free/i/intel-microcode, no change. Disabled hypertreading, no change. When I start two VM's, the cores slowly go out of sync, and after a while, core1 is at 100% and core2 at 20%.
EDIT: So, I tried it with the new Linux kernel of Ubuntu 16.10, no difference stock. Went in deeper by disabling the intel_pstate driver and changing the tlp config file, but all without success. It's not even the question of getting this to work, I just want to know how. Damn it Linux.