VMWare Server 2.0 was released about two months ago. Virtualization is hot and has a lot of different uses. I use it to run the Linux-based middleware products (Apache, IBM WebSphere Server, IBM WebSphere Portal, etc.) for which we are building an automated deployment product on my . But more about that later... Anyway, I've been running betas and release candidates of VMWare Server 2.0 for six months now and while the functionality is great, initially the performance was very bad on my Thinkpad T61p running Windows Vista. Last week I finally got it to work with proper performance. A perfect time to let other people know how. :-)
The short version:
- Turn off User Access Control (UAC).
- Edit C:\ProgramData\VMWare\VMWare Server\config.ini to include the line
host.TSC.noForceSync = TRUE
- Edit your VMWare Server host settings to "Allow some virtual machine memory to be swapped"
And now for the long version... As mentioned in comments by Theo Fokkema here and here, you need to add host.TSC.noForceSync = TRUE to C:\ProgramData\VMware\VMware Server\config.ini. Unfortunately editing that file on Windows Vista with UAC turned on is tricky. When you edit the file as a user with admin privileges (but not the Administrator itself), you will actually edit a file in a place like C:\Documents and Settings\vinny\AppData\Local\VirtualStore\ProgramData\VMware\VMware Server\config.ini. Already annoyed by the many UAC confirmation dialogs and discovering that IBM WebSphere Server 6.1 also gets confused because of this, I disabled UAC. There are at least four ways to do so, but I choose the easiest; the control panel. After that fix the total system freezes when starting up a VMWare image where gone, but it still took an inordinate amount of time to start up (3-5 minutes). It turned out that the default setting for the VMWare host is to try and fit all virtual machine memory into reserved host RAM. While that may seem like a good idea, I guess it had the effect of Vista first swapping out a whopping 1.5 GB of my 3 GB memory to disk so that it could reserve that memory for my 1.5 GB Linux image! To fix that you follow the purple line in the screenshot to the right. It goes a little something like this:
- Open the VMWare Server 2.0 web console
- Select your host in the inventory tree on the left
- Click the "Edit Host Settings" link.
- Select the "Allow some virtual machine memory to be swapped" option.
- Ignore the warning about this negatively impacting your performance - we know better. ;-)
- Click OK.
That's it! Happy VMing!