按照说明这里,我已手动配置 Windows 时间服务以使用外部时间源。
我注意到服务器的时钟漂移非常快(每 40 分钟 1 秒),我将SpecialPollInterval
注册表参数设置为 60 秒,这样它就会经常同步,从而消除漂移。
我执行的那一刻,net stop w32time && net start w32time
错误下降到 8ms,我很高兴。可惜的是,不到 20 分钟,错误又回到了 300ms。
怎么会这样?
我该如何解决这个问题?
笔记:
- 这是一个 VPS
- Windows 服务器 2008
- 使用以下时间同步源:0.pool.ntp.org、1.pool.ntp.org、2.pool.ntp.org
- 使用这测量漂移
- 逐分钟测量,漂移几乎是线性的
答案1
我会在这里发表评论,但请将您的设置与以下服务器进行比较,我知道该服务器有效。我必须将它们添加为屏幕截图。我可能还会考虑使用 time.windows.com 服务器。它可能比您选择的服务器更远,但我看到其他 NTP 服务器存在问题。它仍然可以让您在时间上足够接近。
答案2
您正在虚拟机中运行服务器。一切都已成定局。
虚拟机可以对服务器的计时进行各种干预。您可能正在目睹 Windows 时间服务与虚拟机之间的争斗,前者试图让您的机器与 Internet 上的 NTP 服务器保持同步,后者试图让客户操作系统的时钟与主机操作系统的时钟保持同步。导致这场争斗如此明显的很可能是主机操作系统的时钟未设置为正确的时间。☺
详细信息取决于虚拟化软件是什么,而您没有告诉我们。 微软对域控制器的一般建议,这确实适用于任何Windows 2008 Server 计算机以及Ben Armstrong 进一步阐述就像ServerFault 上的几个人(顺便说一下,您应该在那里解决服务器问题),就是关闭客户机到主机的同步并坚持使用 NTP。
请注意,Windows 时间服务有办法将主机操作系统的时钟集成为某些虚拟机中的第二个“时间提供者”。当然,如果主机的时钟不准确,您不想与之同步。☺