Ntp

儘管在啟動前進行了 NTP 同步,系統時間仍最多關閉數百毫秒

  • October 3, 2018

我正在執行幾台伺服器,它們需要非常緊湊的時間同步(<50ms),因為它們正在執行 Paxos 算法。伺服器正在執行 NTP 並在某一時刻成功同步。由於hwclock啟用了 11 分鐘機制,因此系統時間應複製到硬體時鐘。

但是,我發現在重新啟動後,與重新啟動前的時間相比,系統時間可以減少多達 300 毫秒。認為重啟後的時間應該在重啟前的 50ms 以內是不合理的嗎?

我最初的反應是 300 毫秒似乎很多,但我確實有數字要生成,它們表明 @Law29 是正確的:

  1. 我的一台機器在正常一周內:
  • 頻率:頻率
  • 系統對等偏移:系統偏移量
  1. 相同的系統,涉及重啟的時間更短:
  • 頻率:頻率重啟
  • 系統對等偏移:sysoffset-重啟
  • 對等點的散點圖peerstatsplot-重啟

(希望您可以閱讀圖表上的所有數字,如果沒有,請給我留言。)

如您所見,存在相當大的差異。考慮到我的本地網路上有一個第 1 層 GPS 源,這讓我感到驚訝,以及頻率校正回到正軌需要多長時間。並且鑑於對等樣本在圖上非常緊密地聚集在一起,這顯然是本地時鐘的問題,而不是啟動期間的網路延遲不一致。(作為記錄,硬體是Shuttle DS437無風扇迷你 PC,配備雙核 Celeron 1037U @ 1.8 GHz。)

因此,要點可能是:

  1. 確保 ntpd 成功寫入 NTP 漂移文件,
  2. 確保核心的更新硬體時鐘的 11 分鐘計時器已打開(有關詳細資訊,請參閱“核心自動硬體時鐘同步”中man hwclock 的詳細資訊),或者您的關機程序正在更新硬體時鐘,
  3. 確保 ntpd 有4-10 個可訪問的源(在 iburst 模式下),並且
  4. 配置您的啟動依賴項,以便 ntpd 有機會在 Paxos 啟動之前修復時鐘。

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