虚拟机上的时钟漂移,没有任何帮助

虚拟机上的时钟漂移,没有任何帮助

我在 vmware 上的时间漂移​​非常快。

-241587 20:38
-241587 20:39
-241587 20:40
-241587 20:41
-241587 20:42
-0.014 20:02
-0.025 20:03
-0.056 20:04
-0.093 20:05
-0.093 20:06
-68996. 20:07
-68996. 20:08
12.923 20:07
12.923 20:08
20.371 20:09
21.734 20:10
21.734 20:11
-67965. 20:12
-67941. 20:13
-67915. 20:14
-67906. 20:15
-67906. 20:16
-67897. 20:17
2.508 20:16
2.508 20:17
37.491 20:18
40.774 20:19
40.774 20:20
40.774 20:21
-67927. 20:22
-67912. 20:23
-67912. 20:24
-67897. 20:25

NTP 尝试解决这个问题,但正如您所见,它遇到了麻烦。我也尝试了 vmware-tools,但它们显然不如 NTP。我的 NTP 配置了频繁同步间隔和抗恐慌性:

tinker panic 0
restrict 127.0.0.1
restrict default kod nomodify notrap
server 10.0.0.3 iburst minpoll 4 maxpoll 6

因此,我意识到最好找到漂移的原因。我发现时间漂移取决于 CPU 负载。CPU 负载越高 - 漂移越大。CPU 和内存窃取不会影响漂移。我在一台主机上隔离了单个虚拟机 - 漂移仍在继续。我尝试了不同的时钟源。hpet、tsc、acpi_pm。- 漂移仍在继续。我在内核设置中的客户机级别禁用/启用它们,并在 vmkernel.boot 设置在 VMware 级别禁用/启用它们。- 什么都没用。

cat /proc/interrupts | grep timer; sleep 10; cat /proc/interrupts | grep timer
  0:         46          0          0          0          0          0          0          0   IO-APIC   2-edge      timer
LOC:     109263     298456     176209     142493     237279     126348     113116     104975   Local timer interrupts
  0:         46          0          0          0          0          0          0          0   IO-APIC   2-edge      timer
LOC:     109499     299498     176782     142786     237786     126769     113417     105206   Local timer interrupts

客户操作系统:Ubuntu 16.04.1 VMware 5.5

答案1

您可以使用以下 .vmx 配置文件选项启用定期同步:

tools.syncTime = true

将周期设置为非常低的值,例如每 20 秒:

tools.syncTime.period = 20

为了实现此功能,您需要在客户操作系统中安装 VMWare 工具。

http://www.vmware.com/pdf/vmware_timekeeping.pdf了解更多信息

相关内容