Because operating systems running as virtual machine guests share the host's physical resources (such
as CPU time and interrupt handling), their ability to keep their own accurate time is diminished. Accurate OS time
depends on regular servicing of timers so that the clock continually moves forward smoothly. Virtual machines must
often wait while the host OS is busy servicing other guests, resulting in clock drift or erratic behavior.
This problem is inherent in the basic nature of multiple operating systems sharing the same
As a result of this inherent instability, a virtual guest OS is generally not suitable for use as a platform for
providing highly-accurate time to other clients. Excessive clock instability of the server machine can result in serious problems with time sychronization
throughout your enterprise. Also, any tools that calculate time variances (such as Domain Time II Audit Server, Domain Time II Monitor Service,
the Domain Time II Manager variance report, DTCheck utility, etc.) cannot usually be relied upon to provide accurate results when executed from a virtual OS 1.
Guidelines for using the various Domain Time II components on virtual machines
- Domain Time II Server: Domain Time II Server is not supported on most virtual machine guest operating systems 1.
- Domain Time II Audit Server: Domain Time II Audit Server is not supported on most virtual machine guest operating systems 1.
- Domain Time II Manager and Tools: The Domain Time II Management tools contain a number of programs that calculate, compare, and report on
clock variance such as Domain Time II Monitor Service, the Domain Time II Manager Variance Report page, the DTCheck utility, etc.
Tools that calculate comparative time variances cannot be relied upon to provide accurate results when executed from a virtual OS.
These should be run on physical machines 1.
- Domain Time II Client:
Depending on your particular requirements, hardware, application, and load, you may be able to use Domain Time Client to
achieve reasonable synchronization of your guest OS, however this is not guaranteed. In general, any machine where accurate
time synchronization is critical should run directly on physical hardware.
Domain Time II Client can be configured on a guest OS in the same manner it is configured on a stand-alone physical machine.
However, given the additional instability of the platform, you should take into account the need to synchronize more frequently to
compensate for drift. As a result, the default target-seeking mode Domain Time II Client may
not be able to sufficiently adjust automatically for your needs. If so, you need to set the Client to synchronize on a regular
schedule and adjust that schedule up or down to acheive your desired accuracy.
See Client Timings for how to set a fixed
It's very important that you regularly monitor your clock synchronization on virtual machines. The environment is extremely susceptible
to changes in load. Since these changes can occur at any time in other guests or on the host, settings that were once perfectly
adequate to keep your time synched in any particuar guest may suddenly be insufficient. We recommend using a monitoring product capable
of generating alerts to notify you of insufficient sync, such as Domain Time II Audit Server.
The host machine's operating system should also be synchronized as much as possible to the correct time (preferably using Domain Time II).
The guest OS will use the host's time at startup, and occasionally, some functions of the virtualization software will attempt to match
the guest clock to the host (even if you have built-in time synchronization disabled - see below). It's therefore very important that the
host clock be as close to accurate as possible.
Regarding the host built-in time sync features (i.e. VMWare Tools, Hyper-V Integration Services, etc.)
Most virtualization products include a built-in time synchronization function that attempts to synchronize the guest
OS clock to that of the host (such as those included in the VMWare Tools, Hyper-V Integrations Services, etc.). These functions vary in effectiveness and
often create additional problems for accurate timekeeping, such as unexpected stepping of the clock, backwards time jumps, etc.
Previous versions of this KB article recommended using the built-in time sync functions of the virtual software based on manufacturer
documentation; however, we have revised our recommendations based on extensive testing and customer feedback. It is almost
always best practice to disable the built-in guest-to-host time sychronization functionality of the guest and use Domain Time II Client
to synchronize the guest OS clock.
As mentioned above, even if you have the built-in sync tools turned off, some virtual environments (like VMWare) do still occasionally
attempt to set the guest OS clock to match the host, such as when doing backups of the guest image files, or other housekeeping. Domain Time will detect
these attempted changes and immediately attempt to correct for them, however, the host clock should still be kept correct to prevent a wild-time situation where
the guest clock suddenly jumps to a highly incorrect value that Domain Time cannot quickly repair. If these types of unexpected
clock adjustments will present serious problems for your application, you should change to using a physical machine instead of a virtual one. Note, some of
these unwanted events can be avoided by disabling internal time synchronization on the VMWare host as well as in the Guest VMWare tools as described in
VMWare KB article (1189).
1 As of Windows Server 2012, Microsoft has made significant improvements in Hyper-V guest clock handling, such that on sufficient hardware,
Hyper-V guests may be suitable for running time services such as Domain Time Server, Audit Server, Manager, tools, etc. for general purpose use.
Highly time critical environments should (such as those requiring sub-millisecond timing) should continue to use physical machines for these systems.
Older Hyper-V environments (i.e. Server 2008) are not suitable for serving time.
Disabling Virtual Machine Guest-to-Host Time Synchronization on Multiple Hypervisors
Disabling Time Synchronization under Virtual PC 2007
VMware Time Sync and Windows Time Service
Timekeeping in VMware Virtual Machines
Disabling Time Synchronization (1189) - VMWare