Is there a maximum number of CPU's that a VirtualBox could bare?

Time has happened since I posted this question, just for the archive I will share my findings hoping they can help to save time for others.

It turns out that the performance issues were due to the way how VirtualBox works. Especially the relationship between the OS and the hypervisor.

The Virtual Machine (the guest OS) at the end is a single process for the host and when you modify the number of CPU's in the Virtual Machine settings what they will do is change the number of threads that the process will have to emulate the other CPU's. (at least in VirtualBox)

Having said that, when I assigned 10+ CPUs to the VM I ended up with:

  • a single process with 10+ threads
  • an emulated OS running hundreds of processes
  • my Java code which was creating another bunch of threads

All of that together caused that the setup was saturating the host Virtual Machine process which I think it was due to the way how the host OS was handling the processes context switching

On my server, the hard limit was 7 virtual CPU's, if I added more than that it would slow down the performance of the Java software

Running the Java software outside of the VM didn't show any performance issue, it worked out of the box with 60+ isolated threads.