Slow/Laggy/Poor graphics performance: Linux Guest VirtualBox 6.0

I have spent many an hour trying to figure out why VirtualBox 6 has given me terrible graphical performance on Linux Guests. I’m going to give you a no-mess solution that just might save your sanity.

Within the Settings for Your Virtual Machine, navigate to the Display > Screen tab.
Under the Graphics Controller dropdown, select VMSVGA for your Linux guest.

Next, you will need to boot into the virtual machine and reinstall the VBOX Guest Additions for this to work (and cement it in with the obligatory reboot)

So you may be wondering why or when you might need to use this guide?
You may have upgraded to VB6 from VB5 or earlier and trying to use a pre-existing VM.
You may have installed VB6 for the first time, created and installed a new Linux guest VM and experienced graphical slowness.
You may have tried (mostly) every setting within VBOX and viewed every forum post on the internet regarding VB performance issues and have got no further.

Admittedly, I was incredibly close to giving up altogether with VBOX 6 and going back to VBOX 5 as I have been struggling with this since VBOX 6 release. Finally, I have my VM back =)

Overcoming a resource famine

This may seem as another moan about how bad my AMD FX6350 is, however it isn’t. Much. I have arrived at the point where another Virtual Machine wouldn’t only be handy, but critically important for various reasons.

My current usage is as follows:

  1. Windows 10 host – SSD1
  2. Ubuntu 16.04 guest – HDD 1 – 2 VCore / 3 (allocatable)
  3. Ubuntu 18.04 Server guest – HDD1 – 1 VCore / 3 (allocatable)

VirtualBox allows 3 out of 6 cores to be allocated to VM’s. It seems the FX6350 isn’t a “true” 6 core processor and instead sees 3 physical as 6 logical processors.

The current configuration worked well, until I decided I wanted to test my 18.04 server (hosting my web app) against some attacks via Kali. This would mean that I would need another VM as 4, to test against 3. This would mean the CPUs are being pushed to the point where they (the host and guests) would not operate correctly.

I immediately decided to throw more power at the problem as I was lacking at least a few cores to accomplish this. I had 2 solutions:

  1. Set up a spare PC to play role as 18.04 server or Kali
  2. Buy a new PC altogether with enough cores to cater for the downfalls

Problem with solution 1: Another PC will be running and I do not have another monitor/mouse/keyboard/space/power socket(s) to  accommodate for something that could be done a lot easier on a single machine

Problem with solution 2: Not sure if my Windows 8.1 license will still apply an upgrade to Windows 10. Also, the obvious monitory cost involved.

Wielding my credit card, I was very close to ordering a spanking new Ryzen 7 2700x bundle from Overclockers.co.uk for a princely sum. At that moment, I instantly thought of a lesser (cheaper) solution.

Whilst (in theory) all 3 guests where happily working with/against each-other, the host will be nothing more then a host. Doing nothing, other then sharing resources, whilst using them. Removing the Windows 10 host lead me to the penultimate conclusion.

  1. Ubuntu 18.04 host – SSD 2
  2. Ubuntu 18.04 server guest – HDD1 – 1 VCore / 3 (allocatable)
  3. Kali guest – HDD1 – 2 VCore / 3 (allocatable)

Instantly I can start to see bottlenecks here, hence the “lesser”. I could extend a guest to HDD2, If I need to.  However, I have dodged a large sum of credit whilst achieving what I wanted. (in theory at least)

It seems that for the time being, the 2013 processor popular with gamers-on-a-budget still fits its purpose (barely). Being coy about the situation, I have averted a cost and will keep me warm through winter (although dreadful in the current heatwave). Eventually, I will have to let it go but until then I await for DDR5 and future processors to add to the mounting upgrade-ability from this long dead platform.