Windows

Ntpd 過於不准確

  • September 9, 2013

我已經設置了 ntpd(Windows 7 客戶端上用於 Windows 的 Meinberg ntp-4.2.6p5@london 版本),並為附近的一組伺服器選擇了低 ping 時間(通常為 10-20ms ping)。然而,我的時鐘似乎只能精確到 100 毫秒或更短,並且隨著時間的推移並沒有變得更好。我原以為它可以ping 時間準確得多,這令人失望。如何讓它更好地工作?

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 時間為 12 毫秒時關閉 100 毫秒似乎很荒謬,我讀錯了嗎?

事實上,我不確定 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

理想情況下,我希望距離已配置伺服器的中位數不超過 50 毫秒,如果它離得更遠,我希望它能夠步進。是否有任何我可以設置的配置選項可以讓 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

理想情況下,我希望距離已配置伺服器的中位數不超過 50 毫秒,如果它離得更遠,我希望它能夠步進。是否有任何我可以設置的配置選項可以讓 ntp 做到這一點?

NTP 不能那樣工作。它從您的列表中選擇一個伺服器,在“ntpq -p”輸出的第一列中用“*”(星號,又稱參考時間源)標記它並嘗試跟踪它。在參考時間源變得無法訪問的情況下,它將回退到跟隨“+”(合格的候選)伺服器之一。

我建議:

  1. 不在每台伺服器上使用 iburst
  2. 選擇你最好的伺服器,在上面使用 iburst 並用prefer標記它,即“server tick.example.com iburst prefer”。
  3. 僅手工挑選 3 個關閉伺服器。
  4. 更多地使用區域池 DNS 名稱(例如$$ 0-3 $$.us.poo.ntp.org) 其餘的。
  5. 為至少 4 個總參考伺服器拍攝,但不超過 9 個。
  6. 永遠不要配置“server 127.127.1.0”(又名本地時鐘)或“fudge”行。

預設情況下,“slew”與“step”的選擇是 128ms。如果時間偏移 > 128ms,它將步進而不是擺動。請參閱“ntpd”的“-x”參數(除非您的軟體在時鐘步進時會嚇壞,否則永遠不要使用它)。

除了“ntpq -p”,您可能還想查看“ntpdc -c loopinfo”。

引用自:https://serverfault.com/questions/483693