Ntpd过度不准确

我有ntpd设置(Meinberg ntp-4.2.6p5@london版本的Windows在Windows 7客户端上)与一堆附近的服务器select低ping时间(通常是10-20ms ping)。 不过看来我的时钟只能精确到100ms以内,而且随着时间的推移不会变好。 我会认为它可以比平时准确得多,这是令人失望的。 如何使它更好地工作?

ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +pool-test.ntp.o 216.218.254.202 2 u 259 1024 17 12.920 -106.39 111.972 +palpatine.steve 208.201.242.2 3 u 239 1024 17 16.959 -102.84 112.056 +grom.polpo.org 127.67.113.92 2 u 259 1024 17 17.362 -184.43 74.468 +paladin.latt.ne 204.123.2.72 2 u 378 1024 3 24.211 -106.97 61.825 +public-ntp1.iso 204.13.164.164 3 u 259 1024 17 33.080 -100.17 65.970 +nist1.symmetric .ACTS. 1 u 214 1024 17 17.548 -108.30 111.951 *nist1-sj.ustimi .ACTS. 1 u 245 1024 17 21.826 -111.02 63.313 

抖动和偏移如何远远大于延迟? ping时间为12ms时关机100ms似乎很荒谬,我看到这个错误吗?

事实上,我不确定ntp是否正在做任何改变我的时钟的事情 – 似乎花了一些时间,但不一定设置任何东西。 我如何检查?

还有一些信息:

 ntpdc> sysinfo system peer: nist1-sj.ustiming.org system peer mode: client leap indicator: 00 stratum: 2 precision: -11 root distance: 0.02182 s root dispersion: 0.15431 s reference ID: [216.171.124.36] reference time: d4dae2b5.3c32ce54 Fri, Mar 1 2013 0:17:57.235 system flags: auth monitor ntp kernel stats jitter: 0.045776 s stability: 0.000 ppm broadcastdelay: 0.000000 s authdelay: 0.000000 s more "c:\Program Files (x86)\NTP\etc\ntp.drift" 192.049 more "c:\Program Files (x86)\NTP\etc\ntp.conf" driftfile "C:\Program Files (x86)\NTP\etc\ntp.drift" server nist1.symmetricom.com iburst server nist1-sj.ustiming.org iburst server 149.20.68.17 iburst server 173.230.144.109 iburst server 65.19.178.219 iburst server 204.2.134.162 iburst server 173.230.144.109 iburst server 207.115.64.229 iburst 

理想情况下,我想要一个距离configuration的服务器的中位数不超过50ms的时间,如果它离得更远,我希望它能够步进。 是否有任何configuration选项,我可以设置,这将使ntp做到这一点?

抖动(也就是老式NTP中的分散)可能随着时间的推移而变化很多。 特别是如果你有一个设置,你和NTP服务器之间的连接拥塞。 您需要经常运行“ntpq -p”(大约每个“轮询”秒)来监视抖动,或打开性能文件(ntp.conf文件中的“statsdir”和“statistics”行)。

http://www.ntp.org/ntpfaq/NTP-s-sw-clocks-quality.htm http://www.ntp.org/ntpfaq/NTP-s-trouble.htm

理想情况下,我想要一个距离configuration的服务器的中位数不超过50ms的时间,如果它离得更远,我希望它能够步进。 是否有任何configuration选项,我可以设置,这将使ntp做到这一点?

NTP不这样工作。 它会从列表中select一台服务器,在'ntpq -p'输出的第一列用'*'(星号,即参考时间源)标记,并尝试关注它。 在参考时间源无法到达的情况下,将返回到“+”(合格候选)服务器中的下一个。

我build议:

  1. 不要在每台服务器上使用iburst
  2. select你最好的服务器,使用iburst,然后用prefer标记,比如“server tick.example.com iburst prefer”。
  3. 只有亲手挑选3个closures服务器。
  4. 剩余部分更多地使用区域池DNS名称(如[0-3] .us.poo.ntp.org)。
  5. 至less拍摄4台参考服务器,但不超过9台。
  6. 切勿configuration“服务器127.127.1.0”(又名本地时钟)或“软糖”线。

默认情况下,“slew”与“step”的select是128ms。 如果时间偏移大于128ms,它将会转而不是转换。 请参阅“ntpd”的“-x”参数(除非您的软件在时钟步进时出现exception情况,否则不应使用该参数)。

除了“ntpq -p”外,你还可以看看“ntpdc -c loopinfo”。

NTP旨在在几乎任何networking上都能在1秒内获得准确的时间。 所以在这方面100ms运作正常。 在今天的实际使用中,NTP通常在几乎任何硬件上保持20ms的时间,在稳定的RTC硬件上保持5-10ms。

如果你的服务器连续不断地被一致的数字(与同级相比),那么它的RTC可能会有很大的抖动。 NTP可以通过冲击同行不断获得“正确”时间来弥补这一点。 但是,这不是build议的,对于那些你正在观察的人来说不是很有礼貌。

NTP不会“设置”时钟(默认情况下)。 它“压倒”时钟,使其运行得更快或更慢,直到时钟达到目标时间。 然后重新调整压摆率以补偿“漂移”(NTP已经计算出RTC与对等体相比快或慢)。

另外,我同意所有的答案的build议。