Mac – Virtualbox – Poor performance on guests with graphical environment

performancevirtual machinevirtualboxvirtualizationvmware

I use Virtualbox 6.1.4 on macOS 10.15.3 (Catalina). On all guest machines with graphical environment, I experience massive GUI lags, even when I let VirtualBoxVM (the sub-application contained in the VirtualBox-App) runs in low resolution mode.

Compared to that I get great graphics performance from VMware Fusion even with Retina graphics.
Those are my properties:

Host machine:

  • MacBook Pro 16''
  • 2.3 GHz Intel Core i9
  • 16GB RAM
  • Radeon Pro 5500M

Guest Machine (those are several, but let's look at a representative example):

  • Linux Ubuntu 19.10 Eoan Ermine (all updates installed)
  • 2 cpu cores
  • 4GB RAM
  • 128mbit graphics memory (Virtualbox does not allow more compared to the
    1024mb I reserve in VMware, maybe that is the root cause?)
  • 3D-acceleration enabled or disabled (tested both, won't make any difference)
  • 2D-video acceleration enabled or disabled (tested both)
  • Nested paging enabled or disabled (tested both)

If you need more information, feel free to ask. When I let the machine start in low resolution mode, it is usable but far from acceptable. The UI lags but responds in time. When I start in retina mode, I have to wait up to 20 second in order for windows to appear. And yes, it is the GUI. Let's say, I start the terminal, I can click on it, no window appears. I start typing, 10 seconds later, the window is visible including the typed text, so the background logic works.

Virtualbox Guest Additions are installed and up to date, interestingly, the (on Ubuntu) preinstalled open-vm-tools worked with VMware while I had to install the specific driver software for Virtualbox.

I thought it could be related to the tiny graphics power I can associate in Virtualbox. But all Youtube-videos I watch have ok performance, I just don't get what I'm doing wrong. I even tried it on a clean installed Mac without VMware (to check driver interference), but it didn't help. Furthermore, the Virtualbox support states, it would not make any difference when increasing the graphics memory (see here at VirtualBox), but I thought, maybe the guest machine OS handles it differently??

The only thing I can say for sure, is that VMware performance is not just better, it's absolutely smooth, while Virtualbox is barely acceptable.

If someone asks why I want to use Virtualbox instead of the (for me) better working VMware: It is just better supported by Vagrant, that's the primary issue. Furthermore, most tools like Docker and Kubernetes shift to it as default.

Best Answer

This is not a new problem, VirtualBox performance has always been quite dire. I did some testing of hypervisor overheads on various different hypervisors years ago, and, unfortunately, not much has changed since then. Processors got a little faster, but in % terms, the impact has not changed a great deal. It may be convenient for various things (e.g. easy and free vagrant integration), but if you are looking for passable performance, as you discovered yourself, VMware is a far better option. If's a tradeoff between "free" vs. "good".

Related Question