Ntp
儘管在啟動前進行了 NTP 同步,系統時間仍最多關閉數百毫秒
我正在執行幾台伺服器,它們需要非常緊湊的時間同步(<50ms),因為它們正在執行 Paxos 算法。伺服器正在執行 NTP 並在某一時刻成功同步。由於
hwclock
啟用了 11 分鐘機制,因此系統時間應複製到硬體時鐘。但是,我發現在重新啟動後,與重新啟動前的時間相比,系統時間可以減少多達 300 毫秒。認為重啟後的時間應該在重啟前的 50ms 以內是不合理的嗎?
我最初的反應是 300 毫秒似乎很多,但我確實有數字要生成,它們表明 @Law29 是正確的:
- 我的一台機器在正常一周內:
- 相同的系統,涉及重啟的時間更短:
(希望您可以閱讀圖表上的所有數字,如果沒有,請給我留言。)
如您所見,存在相當大的差異。考慮到我的本地網路上有一個第 1 層 GPS 源,這讓我感到驚訝,以及頻率校正回到正軌需要多長時間。並且鑑於對等樣本在圖上非常緊密地聚集在一起,這顯然是本地時鐘的問題,而不是啟動期間的網路延遲不一致。(作為記錄,硬體是Shuttle DS437無風扇迷你 PC,配備雙核 Celeron 1037U @ 1.8 GHz。)
因此,要點可能是:
- 確保 ntpd 成功寫入 NTP 漂移文件,
- 確保核心的更新硬體時鐘的 11 分鐘計時器已打開(有關詳細資訊,請參閱“核心自動硬體時鐘同步”中
man hwclock
的詳細資訊),或者您的關機程序正在更新硬體時鐘,- 確保 ntpd 有4-10 個可訪問的源(在 iburst 模式下),並且
- 配置您的啟動依賴項,以便 ntpd 有機會在 Paxos 啟動之前修復時鐘。