I want to fuel the vmware vs. virtualbox discussion with one more benchmark.
I did a couple of benchmarks with a EndeavourOS guest. Not only the darktable raw file conversion benchmark does not reveal any meaningfull performance difference between vmware and virtualbox. But I also did a darktable source compilation benchmark. And this does also not reveal any meaningful difference.
But, there is a big performance difference with a Windows11 guest. And this performance difference is in favor of vmware.
I already had a Widnows11 installation in virtualbox. Today I did anther installation in vmware. That was no so easy because of the TPM chip Win11 requires. But it works with some regedit tweaking during installation.
Then I installed PassMark 10.2 on both win11 instances. I let them run the benchmark in full screen mode and here is the result:
Windows 11 in Virtualbox:
Windows11 in vmware:
The difference is dramatic. vmware shows by far the better performance. virtualbox is slightly worse in CPU rating but a little better in memory rating. At the end of the day that seems to compensate each other so that the darktable benchmarks give similar results for both virtualization solutions.
The big difference is with the graphics performance and the disc performance. The virtualbox had 3D acceleration enabled. But still, it is far behind vmware, which had 3D acceleration enabled as well.
I want to make another point in favor of vmware. Today I tried a new installation of OpenSuse in virtualbox. But after the installation it wont boot properly. It starts the boot process with some messages but ends up in a black screen. It probably needs some kernel parameter to boot. I didn’t figure it out.
I tried the same with vmware, and it worked like a charm. OpenSuse booted after installation with no issue.
I guess I found my new preferred virtualization solution. Thanks to @sradjoker for creating this thread. It made me dig deeper into the topic.
Just wanted to drop this here for you all as well if you haven’t seen it. There’s a project to install Mesa3D for opengl on a windows guest. Though from what little I’ve tested, performance for me is still pretty rough.
I use virt-manager (qemu + libvirt) with GPU / nvme / SATA passthrough to a Windows vm for gaming / VR.
Here are my qemu setup notes:
sudo pacman -S libvirt qemu ebtables bridge-utils
# reboot (or virbr0 will not start)
#-------------------------------------------------
# /etc/polkit-1/rules.d/49-nopasswd_limited.rules
# fixes virt-manager under endeavour-os
/* Allow members of the wheel group to execute the defined actions
* without password authentication, similar to "sudo NOPASSWD:"
*/
polkit.addRule(function(action, subject) {
if ((action.id == "org.archlinux.pkexec.gparted" ||
action.id == "org.libvirt.unix.manage") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
If you don’t need a desktop on the system you are testing you will make better use of your hardware by using lxd containers (the containers share the functionality of your running kernel). As a bonus lxd can also run full virtual machines with qemu. It is also possible to make to make a desktop work in lxd containers.
For running isolated services on your system (e.g a web service) - have a look at podman a drop in replacement for docker (docker is nowadays considered deprecated by Red Hat)
How do you get around the limitation of one thread per core? Or do you ignore that limitation altogether?
I’m often building software in virtual machines, and switched to KVM/Qemu, because it allows utilizing all 8 threads on my quad core processor. VBox only allowed 4 threads, so I could only utilize 50% of my processor capacity.
thats strange, its never prevented me from doing this. I use to run a game server in a VM all my cores/threads but one with execution capped so i could run multiple instances within the VM. It doesnt want you to but you should be able to do it.
I tried gnome-boxes today, I didn’t even know it existed before this thread. It’s limited/simplistic but it runs fast! Haven’t tried yet drag and drop of files.
Apparently it does allow, even though the slider is red, and there’s a message at bottom. Silly me who never tried
Now again I’ll go into an endless research as to which VM to use… at this point I feel comfortable with KMV/Qemu though
gnome boxes is just a simplified gui on top of kvm/qemu/libvirt. If you ever reach a point where you need to make more sophisticated changes you can actually use virt-manager to change the settings on your gnome boxes VMs.
I have looked a bit at Qemu Wiki for how to configure CPUs for the VMs. Here is an excerpt
The goals are to maximise performance, while protecting guest OS against various CPU hardware flaws, and optionally enabling live migration between hosts with heterogeneous CPU models.
Host passthroughThis passes the host CPU model features, model, stepping, exactly to the guest. Note that KVM may filter out some host CPU model features if they cannot be supported with virtualization. Live migration is unsafe when this mode is used as libvirt / QEMU cannot guarantee a stable CPU is exposed to the guest across hosts. This is the recommended CPU to use, provided live migration is not required.
LXD containers are more efficient build environments than vm’s. Just create a profile for the number of cores you need & lxc profile assign the profile to the specific container (or lxc profile edit default):