同一局域网内的服务器之间的实际平均时间差是多少?

同一局域网内的服务器之间的实际平均时间差是多少?

直到最近,我们公司还拥有一个由大约 20 台小型 Windows 服务器组成的小型集群(现在这些服务器都已虚拟化)。它们都配置为与本地时间服务器同步。它位于我们自己的 DC 中的 1Gb 子网络上。我从未让它们之间的时间差少于 100 毫秒,我认为这是一个巨大的差异。

这是正常值吗?在 1Gb 网络上运行的机器之间实际的时间差预期是多少,并且所有机器都连接到同一时间服务器,并且频繁更新,比如每 5 分钟一次?

我想知道这一点,因为在分布式应用程序中设置超时和其他参数需要考虑到这种差异。

答案1

在“合理”的网络上,NTP 通常在 <10-20ms 范围内徘徊。但是,如果您使用 Windows 内置 NTP 客户端,情况就不同了。Windows 内置客户端仅用于保持时间同步,以便 Kerberos 保持 5 分钟的同步。他们无意保持非常准确的时间;因此 100ms 已经相当不错了。

如果你需要比 100ms 更精确的时间,请安装一个真正的 NTP 客户端,例如Meinberg 二进制文件ISC 的参考 NTPd。

如果您需要超精确的时间,您应该考虑精确时间协议 (PTP)。请注意,PTP 比 NTP 复杂得多,因此除非您需要超精确的时间戳或类似的东西,否则强烈建议使用 NTP。

答案2

NTP 应该能够比 100ms 做得更好

虚拟机因存在奇怪的时间同步问题而臭名昭著。

您没有提到您的虚拟化环境,但请检查并确保所有虚拟机管理程序也都已 NTP 同步。(通常,客户虚拟机最好从其主机虚拟机管理程序获取时钟。)

请参阅 NTP 文档中的“已知问题”——它提供了更多详细信息。

http://support.ntp.org/bin/view/Support/KnownOsIssues#Section_9.2.2

请参阅 VMware 的这篇论文,了解有关 Windows 硬件计时问题的详细情况,以及虚拟机计时的其他问题:

http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf

相关内容