Linux
使用 GPS 時鐘的 NTP 時間同步質量似乎很差
我有一個 Linux 伺服器,它的時間與附近的基於 GPS 的 NTP 設備同步。從伺服器到設備的 Ping 時間約為 1 毫秒,抖動非常低:
--- xxxx ping 統計 --- 100個包發送,100個接收,0%丟包,時間99001ms rtt 最小值/平均值/最大值/mdev = 0.874/0.957/1.052/0.051 毫秒
但是,NTP 客戶端估計時間同步的準確度約為 5-6 毫秒,考慮到設置,這似乎非常高:
在第 2 層同步到 NTP 伺服器 (xxxx) 時間準確到**5 ms以內** 每 16 秒輪詢一次伺服器
ntpq -p 給出以下內容:
遠端 refid st t 輪詢到達延遲偏移抖動 ============================================================================== *xxxx .PPS。1 u 10 16 377 0.964 -0.019 0.036
兩個問題:
- 什麼可能導致 NTP 客戶端對同步準確性的信心如此低?
- 有什麼方法可以測量同步的實際精度,比如精確到毫秒?
“時間正確到範圍內”之後顯示的值
ntpstat
是根離散度 + 根延遲 / 2。ntpq -p
不顯示“根離散度”執行ntpq -c rl
。儘管如此,很明顯,缺乏準確性的主要原因是分散而不是延遲(只有 0.964)。
色散是“相對於主要參考源的名義誤差”。我已經簡要瀏覽了 NTPv4 RFC,這就是它要說的:
色散 (epsilon) 表示測量中固有的最大誤差。它以等於最大規範系統時鐘頻率容差 (PHI) 的速率增加,通常為 15 PPM。1 PPM 等於 10^(-6) 秒/秒。
使用 rrdtool 術語分散不是衡量標準,而是計數器。看到較大的值可能並不表示有任何問題。
唉,我不能很好地理解 ntp 算法來了解如何使這個數字更小。我注意到這個值偶爾會被重置。我不知道為什麼。