Ntpd 過於不准確
我已經設置了 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”輸出的第一列中用“*”(星號,又稱參考時間源)標記它並嘗試跟踪它。在參考時間源變得無法訪問的情況下,它將回退到跟隨“+”(合格的候選)伺服器之一。
我建議:
- 不在每台伺服器上使用 iburst
- 選擇你最好的伺服器,在上面使用 iburst 並用prefer標記它,即“server tick.example.com iburst prefer”。
- 僅手工挑選 3 個關閉伺服器。
- 更多地使用區域池 DNS 名稱(例如$$ 0-3 $$.us.poo.ntp.org) 其餘的。
- 為至少 4 個總參考伺服器拍攝,但不超過 9 個。
- 永遠不要配置“server 127.127.1.0”(又名本地時鐘)或“fudge”行。
預設情況下,“slew”與“step”的選擇是 128ms。如果時間偏移 > 128ms,它將步進而不是擺動。請參閱“ntpd”的“-x”參數(除非您的軟體在時鐘步進時會嚇壞,否則永遠不要使用它)。
除了“ntpq -p”,您可能還想查看“ntpdc -c loopinfo”。