3

I have Lubuntu 22.04 LTS (guest) installed on a VirtualBox VM. VirtualBox is running on a Ubuntu 20.04 LTS (host) machine.

Initially, I assigned 2 (virtual) CPU cores to the VM. I noticed that I constantly had a high VMM load although the guest was idle. The Session Information window showed a huge discrepancy between guest load and VMM load. While the guest load was at ~0%, the VMM load was anywhere between 50-90%. I then switched the numbers of assigned cores around. The interesting thing is that this discrepancy only appears when I assign 2 (virtual) cores or more to the VM as shown in the picture below.

VirtualBox - Session Information - CPU Load

I have a couple of questions regarding this:

  1. What exactly is the VMM load?
  2. What is the difference between guest load and VMM load?
  3. Why is there such a huge discrepancy between guest load and VMM load (with 2 cores or more)?
  4. Which of these two variables is decisive when it comes to assessing the CPU load of the guest system (i.e. whether the system is working at the limit)?

I could not find satisfactory answers to my questions. And I also don't know if my VM is having a resource/performance problem. Due to the fact that while the guest load indicates no performance issues, the VMM load values look like a cause for concern. Used RAM was always around 385 MB (2 GB total assigned to VM).

The VirtualBox versions I have tried (with their respective Guest Additions): 6.1.38, 6.1.40 and 7.0.0. All with the same issue.

My CPU: Intel Xeon E3-1231 v3 @ 3.40 GHz (4 physical cores, 8 threads).

EDIT: I made an interesting observation while doing some CPU stress tests:

VirtualBox - Cores 1/2 - Stress Test

  • 1 assigned virtual core: guest load increases but VMM load remains at ~0% during the CPU stress test period.
  • 2 assigned virtual cores: guest load increases whereas VMM load decreases during the CPU stress test period.

In summary, every time the guest system needs processing power to handle user/system tasks, the VMM load goes down or stays down. This could mean that whatever the VMM load represents, it does not (or hardly) affect the processing power needed by the user/system.

Furthermore, I have observed that even if (in the case of 2 or more allocated virtual cores) the VMM load is high, the CPU load on the host system remains low. The CPU load on the host system only increases when the guest load increases. Consequently, the VMM load represents something that does not or hardly use CPU power.

The only question that remains is why the high VMM load starts to appear with 2 assigned virtual cores. Possibly processes for coordination between the cores?

5
  • Try 1 CPU with 2 cores. Do not overpower the guest (common error).
    – anon
    Commented Oct 16, 2022 at 18:03
  • @John I have 1 CPU (Xeon E3) installed on my host machine. In the VirtualBox settings I initially assigned 2 (virtual CPU cores). But even with "only" 2 (virtual) cores the VMM load is very high. Is it maybe an indicator that assigning 2 (virtual) cores is already too much? But then I don't understand why changing cores to 3 and 4 doesn't further increase the (high) VMM load.
    – Tando
    Commented Oct 16, 2022 at 18:09
  • Since you have a 1 CPU host, limit your guest (settings) to 1 CPU and 2 cores, restart the guest and see if the load goes down
    – anon
    Commented Oct 16, 2022 at 18:13
  • @John This is the setting that I can manipulate: Processor(s): Sets the number of virtual CPU cores the guest OSes can see. It is a slider with 8 tick marks (= 8 virtual cores; my host CPU has 4 cores and 8 threads). I have put the slider to 2 virtual cores. With this configuration the VMM load is very high (see picture above). 1 assigned virtual core: guest & VMM load normal. 2-4 assigned virtual cores: VMM load very high but also not increasing with more assigned cores. And guest load always at ~0% no matter how many cores.
    – Tando
    Commented Oct 16, 2022 at 18:22
  • Maybe for clarification: the image that I have posted above shows 4 different sessions. First graph shows VM session where I've assigned 1 virtual core to the VM, second graph shows VM session with 2 assigned virtual cores etc.
    – Tando
    Commented Oct 16, 2022 at 18:28

1 Answer 1

2

I have found some explanation by the developers in the post VirtualBox vs Hyper-V AMD/Intel big performance difference - page 2:

VirtualBox counts the realtime in three nanosecond counters called cNsExecuting, cNsHalted and cNsOther. The first two sum up the times when the guest OS is executed and halted respectively. The third counter sums up the times when either VirtualBox itself is doing "something else" or when VirtualBox is not active at all (and the guest OS is not in the halted state). This "something else" is difficult to grasp, because it hides in the majority of the VirtualBox code.

In the Performance Monitor, the Guest Load represents the increment of cNsExecuting, and the VMM Load represents the increment of cNsOther. Since the CPU load both in the guest OS and in the host OS seem to not reflect this VMM Load, I don't expect this issue to have a high priority for the VirtualBox development.

VMM Load is then explained as an obscure counter of times when VirtualBox is doing "something else" or is not active at all. It is said not to have any implication regarding the the CPU load in both the guest and the host and is deemed by the developer to not be of much importance.

The most I can say is that if the developer doesn't see it as very important, you should do the same.

1
  • Thank you! I came to a similar conclusion (see my edited post) that VMM load might represent something not using much or no CPU power. For me it was important to know that the high VMM loads don't imply shortage of (computing) resources on the guest system. Because at first glance they give the impression of a system that is constantly being used to its full capacity.
    – Tando
    Commented Oct 16, 2022 at 22:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .