Background
Time drifts in virtual machines and possibly the Service Console can be due to the HPET misreporting its frequency. The term "time drift" describes situations where the reported time diverges from the correct time at an approximately constant rate.
Time drifting in the Service Console is caused by NTP running in the Service Console not being able to correct the time.
All hardware timers run at a slightly different rate than their specified frequency. In most cases this can be compensated for by running time synchronization software such as NTP or w32time. However some HPET implementations misreport their frequency by hundreds of parts per million, which may be more error than the time synchronization software is able to correct. NTP in particular is only able to correct for errors less than 500ppm. In this situation, typically the other timers in the system are running much closer to their specified frequency than the HPET.
Solution
If the HPET is significantly misreporting its frequency, you must disable the use of the HPET.
To do this using the VMware Infrastructure Client:
- Click the Configuration tab.
- Click Advanced Settings.
-
Deselect the VMkernel.Boot.timerEnableHPET option in Advanced Settings.
Alternately, run the command esxcfg-advcfg -k FALSE timerEnableHPET in the Service Console.
Reboot the ESX host for the configuration to take effect.
Affected Hardware: This issue affects machines on which ESX uses the HPET as a reference timer. That is limited to machines with an HPET that fall into one of two categories:
- IBM x-Series machines with more than one CEC.
- Machines that use AMD K8 processors.