直到最近,我们还在工作了一个由20个小型Windows服务器组成的小型集群(现在已经全部虚拟化了)。 他们都被configuration为与本地时间服务器同步。 它位于我们自己的DC中的1Gb子网上。 我从来没有让他们距离彼此不到100毫秒,我认为这是一个非常大的差异。
这是一个正常的价值? 在1Gbnetworking上运行的机器和所有连接到同一时间服务器的机器之间的时间差异有什么实际的期望,并且每隔5分钟频繁更新一次?
我想知道这是因为在分布式应用程序中设置超时和其他参数需要考虑这一差异。
NTP通常在“合理”的networking上徘徊在<10-20ms范围内。 如果您使用的是Windows内置的NTP客户端,那么情况就不一样了。 Windows内置客户端只能保持5分钟的Kerberos同步时间。 他们无意保持非常准确的时间; 所以100毫秒是相当不错的。
如果您需要更精确的时间超过100毫秒,请安装实际的NTP客户端,如ISC的参考NTPd的Meinberg二进制文件 。
如果您需要非常准确的时间,您应该查看精确时间协议(PTP)。 要注意的是,PTP比NTP复杂得多,所以除非你需要超精确的时间戳或类似的东西,否则NTP是非常值得的。
NTP应该能够比100ms好很多
虚拟机器出现奇怪的时间同步问题是臭名昭着的。
您没有提到您的虚拟化环境,但请检查并确保所有虚拟机pipe理程序都同步NTP。 (一般来说,访客VM机器最好从其主机虚拟机pipe理程序获取时钟。)
请参阅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