I'm using Mac OS X 10.6.7 and VMware Fusion 3.1.3. I have Windows 7 on my VMware Fusion.

Sometimes it takes a very long time (30+ minutes) to shut down and sometimes forever (hang with the spinning curser saying it's shutting down..). If I force quite VMware (and Win 7), the next time I start Windows 7 on VMware fusion it will take a very long time to start (15+ minutes), although it doesn't hang.

What is wrong? I think there's something I need to clean up but don't know where.

  • What hardware are you assigning to the virtual machine? (How much RAM & CPU cores) Is it only the shutting down that's slow/hangs? Or is working with the VM slow as well? – Jan Henckens Jun 25 '11 at 11:50
  • I have 8GB of total RAM in my MacBookPro and I'm assigned 4GB of RAM to Virtual Machine. The processor is configured to use 2 processor cores. Under this settings, I don't see a possible that RAM or CPU is slowing it down..what else? – KMC Jun 26 '11 at 3:41
  • When you shut down, are you suspending the VM or shutting down the guest OS? Suspending causes all the memory to be written to disk, and 4GB is a lot to write to disk. (It's also more memory that Fusion is comfortable with. Use 2GB or less if you can.) Plus there's the problem (and solution) I describe in my answer below. Easiest workaround is to shutdown the guest OS in the VM rather than suspend it, though changing the config as my answer recommends is pretty easy, too. – Old Pro Apr 30 '12 at 7:45

Upgrading to Fusion 4 will help some, but whether you upgrade or not, read VMware support article 1022625 to learn about the things that could be causing slowdowns and what you can do about them.

In particular, I recommend you follow the instructions labeled "Edit the virtual machine settings to reduce I/O usage by using more host memory":

Add the following lines to the virtual machine's settings ( .vmx) file:

MemTrimRate = "0"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"

In short, Fusion's code base derives from a server environment where one server is running many, many virtual machines which all are using the same OS. That code base implements several strategies to allocate less host memory to an individual VM than the VM thinks it needs. These settings turn those strategies off, which is a good thing for Fusion where you're typically running only one VM at a time. In particular, sched.mem.pshare.enable = "FALSE" turns off sharing pages of memory using copy-on-write, which does not work well the way Fusion uses it on MacOS and causes insane delays shutting down VMs which use large amounts of memory.

I also recommend adding this to your VMX file at the same time:

# Do not allow VM memory to be swapped
Prefvmx.minVmMemPct = "100"

I've asked VMware to make these settings the defaults for Fusion, but I'm not holding my breath. Until then, I manually add them to every VM I create, because, unfortunately, putting these changes in user- or system-wide config files seems not to have any effect.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .