VMware is so slow that is useless, this is normal?

On my desktop computer I have VirtualBox, and i can run a lot of concurrent VMs, up to near native speed.

On my server, that is twice as powerful than my desktop computer, I have debian+VMware server 1.0 (because I don't like the java bloat introduced with 2.0), and if I run a single VM, it runs up to near native speed. The real bottleneck is disk access speed: if I start TWO (yes, just 2!) VMs at the same time (read: when the server will turn on), the server will be paralyzed for 40 minutes! 40 minutes for booting 2 Windows VMs! Completely useless! I had better performance when I installed VirtualPC on a Celeron 400 Mhz!!!! If I search for "vmware slow hdd access", I get tons of results, so, I assume this is an huge VMware problem, right?

So I was thinking one of this actions:

  1. Replace the server HDD with two SSDs in RAID 0
  2. Switch to Proxmox VE

Someone tried Proxmox? How better it is? Will it fix the bottleneck? I don't have another spare server to experiment with, so, if I wipe my server to play with proxmox, I will lose at least 2 working days...


Solution 1:

I have seen this behaviour when I assign too much memory to the VM's. When I start a VM that grabs memory from the host OS above some threshold, everything dies except for the hard drive LED. It takes an age just to shut down the VM.

Fine-tuning the memory footprint of the VM's has done wonders for me.

Solution 2:

It sounds like something is seriously wrong with your setup because there's just no way it should take 40 minutes for a couple of VMs to boot.

If disk I/O is an issue your best bet is to add drives and dedicate a drive (or RAID array) to each VM.

Solution 3:

Booting two VMs from the same hard drive will cause drive thrashing (the heads jumping from place to place, consuming more time than actually reading data), especially if the host OS is on the same drive. Boot them separately to avoid this thrashing, and your total boot time will be lower.

I always try to put my VMs on separate drives and then do not perform concurrent actions on any that share a drive (spindle) with other VMs/OSs.

Solution 4:

Yes, VMWare Server's disk IO performance is generally pretty ordinary. I use KVM on my desktop for local virtualisation, and we use a mix of Xen and VMWare ESX for datacentre virtualisation, while keeping a close eye on KVM for that role too.