The VMWare Disk IO Problem – Fixed At Last

Regular readers will know that I’m a great fan of VMWare desktop virtualisation, but my enthusiasm has for a long time been muted by an odd problem. After shutting down or suspending a VM my laptop was thrashing its disks for 5-10 minutes, for no apparent reason, making the system almost unusable in the interim. I’d tried all sorts of variations on disk arrangements but to no avail.

Finally today in desperation I tried googling, which hadn’t worked previously, and I lucked on the solution. The following site wasn’t the first reference I found, but it probably offers the best explanation:
http://olafd.wordpress.com/2010/12/12/heavy-disk-io-after-shutdown-in-vmware-workstation/

The solution seems to be to simply add the following to each vmx file:
mainMem.useNamedFile = "false"

The difference is little short of miraculous. Not only has the disk IO problem vanished, but I can now attempt operations such as starting or shutting down two VMs simultaneously, which would previously have rendered the system completely unusable, or even crashed it.

It’s early days, but so far the only downside seems to be that the visible time to suspend or resume a VM has gone up from a couple of seconds to about 15, but that’s a tiny price to pay.

What annoys me is that if this fix is known, and its effect so dramatic (even if not for every user), then why don’t VMWare make it more visible on their own sites, and provide it as an option in the WorkStation UI?

Addendum

Interesting little “gotcha” on this, recently uncovered. If you have a VM with a lot of RAM, and/or your working files are on a slow disk it can take some time for saved state to write completely to disk after VMWare says that saving is complete. If you power the host down while this is happening you will corrupt the saved state and have to completely reboot the VM. I assume that if you wait for the disk to quiesce before powering down the host then things will be OK. Just be careful out there!

Leave a Reply

Your email address will not be published. Required fields are marked *