Problem: I have a Windows 2003 server virtualized into Virtualbox on an Ubuntu 12.04 box. A heavy load causes the machine stop responding on the network dropping active connections of file shares and RDP connections. After many investigations, tried all common clues: Upgraded Virtualbox to the last version (4.3), verified the presence of malware or rootkit and so on. Nothing wrong. I thought about a problem with high cpu load. But in fact, the problem was with high disk activity.
The VM was setup with IDE disks and with host cache. Thanks to aeichner, his post put me on the right direction:
You should always use the SATA, SAS or SCSI controller if the guest supports it. They have a lower virtualization overhead because of the different architecture compared to IDE and are able to process more than one request at a time if the host cache is disabled.
You can enable the host cache for these controllers if required and should get the same performance as with IDE but it could be possible that you get hanging guests during high I/O load if the host can’t write the cached data to the disk quickly enough.
- Configure an empty SATA controller on Virtualbox
- Windows claims for a driver, install the Intel Matrix one
- Remove the IDE disk driver on device manager
- Shutdown the guest VM
- Reconfigure the VM removing the IDE drive and putting it as SATA
- Relaunch the guest
That’s it! Faster, less CPU usage and I hope, no more freeze during high load on the server. Thanks aiechner and r3dux for the share!