NTP 同步不穩定的可能原因有哪些?

NTP 同步不穩定的可能原因有哪些?

在 Ubuntu 10.04 系統上,我注意到以下奇怪的 NTP 同步事件:

Jul  3 02:19:51 hst ntpd[1432]: no servers reachable
Jul  3 02:36:55 hst ntpd[1432]: synchronized to 91.189.94.4, stratum 2
Jul  3 02:53:48 hst ntpd[1432]: time reset -10.407942 s
Jul  3 02:53:48 hst ntpd[1432]: kernel time sync status change 6001
Jul  3 02:53:48 hst dovecot: dovecot: Fatal: Time just moved backwards by 10 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
Jul  3 02:58:37 hst ntpd[1432]: synchronized to 91.189.94.4, stratum 2
Jul  3 02:58:37 hst ntpd[1432]: kernel time sync status change 2001
Jul  3 03:08:15 hst ntpd[1432]: no servers reachable
Jul  3 03:16:49 hst ntpd[1432]: synchronized to 91.189.94.4, stratum 2
Jul  3 03:17:01 hst CRON[28221]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul  3 03:18:04 hst ntpd[1432]: time reset +10.403648 s
Jul  3 03:22:41 hst ntpd[1432]: synchronized to 91.189.94.4, stratum 2

其中 91.189.94.4 europium.canonical.com 和唯一的伺服器線路ntp.conf是:

server ntp.ubuntu.com

2:36 的更新看起來很假,因為它在 25 分鐘後就被取消了。

造成這種情況的可能原因是什麼?

我能想到:

  • 遠端 NTP 伺服器僅提供錯誤的時間
  • 網路問題(高延遲會導致此類漂移嗎?)
  • 閏秒引發的錯誤(這應該會引發崩潰,對吧?)

如果第一個選擇是問題所在,我該如何防止這種情況發生?

NTPD 是否足夠聰明,可以諮詢多個 NTP 伺服器(server當中有多條線路可用時ntp.conf)並檢測不同的答案是否彼此相差太大?

答案1

幾年前,我在 Slackware 機器上看到類似的系統日誌條目。我相信我是在 2002 年購買了這台機器,幾乎每天 24/7 運行了很多年:它是我的 SSH、SMTP 和 HTTP 伺服器。 NTP 故障發生緩慢,且頻率逐漸增加。

我第一次透過更換「CMOS RAM」電池修復了這個問題,這是主機板上硬幣大小(美國四分之一)CR2032 電池之一。

再運行一兩年後,那台機器完全不再準確地計時,我不得不定期重新啟動ntpd。據我了解,ntpd根據本地時鐘與網路時鐘之間的差異的過去資料保留「傾斜檔案」。我的猜測是,有問題的主機板從來沒有一個好的時鐘,而且時鐘最終變得如此糟糕,以至於「傾斜檔案」無法跟上其巨大的變化。

相關內容