I use VMWare Server on a couple of machines to run various linux and windows guest virtual machines. Depending on what cpu and what kind of power management I have enabled on the host machine I can see some very severe clock drift on the guests. To work around the clock drift I usually need to add a few items to the vmware hosts global config file.
For linux hosts, the config file can usually be found at…
For windows hosts, the config file location is…
C:\Documents and Settings\All Users\Application Data\VMware\VMware Server\config.ini
Open the global config file and add the following lines then restart the vmware server service/daemon…
host.cpukHz = 2000000
hostinfo.noTSC = TRUE
tools.syncTime = TRUE
The first line tells vmware what the maximum clock frequency of the host cpu is (2GHz in my example). The ‘hostinfo.noTSC’ line informs VMWare that the cpu is not running at a constant clock rate (speedstep or cpufreq or power management is active) and the timestamp counter can’t be trusted so use it as little as possible. The last line sets the default to use vmware-tools timesync function. The addition of these items is usually enough to keep the guest clocks running close enough to proper time that ntp will stay locked.