Traditionally,
Note that this applies only to image files. Buffering does not
occur for virtual disks residing on remote iSCSI storage, which is
the more common scenario in enterprise-class setups. See
While buffering is a useful default setting for virtualizing a few machines on a desktop computer, there are some disadvantages to this approach:
Delayed writing through the host OS cache is less secure. When the guest OS writes data, it considers the data written even though it has not yet arrived on a physical disk. If for some reason the write does not happen, such as power failure or host crash, the likelihood of data loss increases.
Disk image files tend to be very large. Caching them can therefore quickly use up the entire host OS cache. Depending on the efficiency of the host OS caching, this may slow down the host immensely, especially if several VMs run at the same time. For example, on Linux hosts, host caching may result in Linux delaying all writes until the host cache is nearly full and then writing out all these changes at once, possibly stalling VM execution for minutes. This can result in I/O errors in the guest as I/O requests time out there.
Physical memory is often wasted as guest OSes typically have their own I/O caches, which may result in the data being cached twice, in both the guest and the host caches, for little effect.
If you decide to disable host I/O caching for the above reasons,
Since asynchronous I/O is not supported by IDE controllers, for performance reasons, you may want to leave host caching enabled for your VM's virtual IDE controllers.
For this reason,
VBoxManage storagectl "VM name" --name <controllername> --hostiocache off
See
For the above reasons,