Lately one of my testing lab Ubuntu Linux hosts has been hanging and/or freezing (requiring a hard system reset) when load was introduced to any of the guest VMs.
A bit of research revealed VBox Ticket #8511: “Regular crashes or freezing”:
One of the most important answers is right there - if you're on a Linux host and doing heavy disk I/O, do not use the host cache for the VMs, ever. The Linux I/O subsystem not very smart, it batches gobs of dirty pages in the filesystem cache, and when it runs out of free memory, flushes out everything to disk. That can take quite a long time (minutes) and there's nothing VirtualBox can do about it. The asynchronous I/O in VirtualBox was designed explicitly to work around this host OS deficiency. The I/O doesn't go through the host's cache and is written to disk much more frequently in smaller chunks. However, VirtualBox isn't necessarily the only process running on the host and something else still may trigger the undesirable behavior. The corollary to the above is obvious: If your host can't cope with the I/O load generated by the VMs plus the rest of the system, there will be trouble. Virtualization isn't magic and can't turn a slow disk into a fast one.
The operative portion being:
If on a Linux host ... do not use the host cache for the VMs, ever.
Digging into the documentation I found out how to disabled host- caching on a per-VM-controlller basis:
VBoxManage storagectl VM-NAME-HERE --name SATAController --hostiocache off
After applying that to all VMs, voila! All fixed!
They may become slow under heavy load (still better than the freeze ups in the past).
No comments yet.
Leave a comment!
You must be logged in to post a comment.