我想让一组服务器拥有完全相同的时间。 所有正在使用UTC时区。
目前使用NTP,我仍然看到他们似乎每个10-20毫秒。
什么是最好的方式让他们每一个确切的时间?
将ntpd连接到LAN以外的NTP服务器以进行时间同步可能会导致您看到的不一致,因为每个连接都必须通过多个路由器,每个路由器都具有不可预知的延迟(取决于stream量)。 如果每台服务器都自己连接,所有服务器之间的时间会有一点偏差。
为避免不一致,最好的方法是创build本地NTP服务器,与外部NTP服务器池同步时间,并将本地NTP服务器用作本地服务器的“主时钟”:
本地NTP服务器
您可以将此服务器configuration为与地理上靠近您的池上的NTP服务器同步。 在这个网站上,你可以得到一个服务器列表,并得到一个靠近你。 它会保持与他们同步的时间。
NTP守护进程在您的服务器上
configuration每台服务器上的ntpd以连接到本地NTP服务器。 当您在最后一个低延迟的局域网上维护本地NTP服务器时,偏差将会很小。
使用这个实现,您的服务器上的时间将会彼此同步。
正如其他人所指出的那样,一个本地的NTP服务器可以同步公共服务器,并为其他服务器提供低延迟的服务,这可能是您可以做的最好的。
如果你能看到天空,你可以从GPS获得一个非常准确的外部同步,但这往往是不实际的。
我怀疑如果你遇到了问题,你有两个问题之一:要么你正在轮询NTP(例如从cron的ntpdate),而不是运行本地守护进程,或者你的问题实际上是testing和networking延迟,您的服务器可能会比您想象的更好地同步。
无论哪种方式,一个明显的事情得到正确的是质量好的时间源。 将自己的GPS接收器和/或primefaces钟送到您的数据中心,或者连接到多个外部的0级时钟。 后来的策略是有点不确定的。 你永远不知道互联网上的什么时钟将它提供为0层,它们可以是从真正的时钟到爷爷的嘀嗒响。
ps使用ntpq -c peers
来查看连接到的时钟的层级。 有关debugging的更多信息,请参见http://www.clock.org/ntp/debug.html