使用 GPS 时钟的 NTP 时间同步质量似乎很差

NPE*_*NPE 7 linux ntp gps

我有一台 Linux 服务器,它的时间与附近的基于 GPS 的 NTP 设备同步。从服务器到设备的 Ping 时间大约为 1 毫秒,抖动非常低:

--- xxxx ping 统计 ---
发送 100 个数据包,接收 100 个数据包,0% 数据包丢失,时间 99001ms
rtt min/avg/max/mdev = 0.874/0.957/1.052/0.051 毫秒

但是,NTP 客户端估计时间同步的准确度在 5-6ms 左右,考虑到设置,这似乎非常高:

同步到第 2 层的 NTP 服务器 (xxxx)
   时间校正到5 毫秒以内
   每 16 秒轮询一次服务器

ntpq -p 给出以下内容:

     轮询到达延迟偏移抖动时的远程重新定义
================================================== ============================
*xxxx .PPS。1 u 10 16 377 0.964 -0.019 0.036

两个问题:

  1. 什么可能导致 NTP 客户端对同步的准确性如此低置信度?
  2. 有没有办法测量同步的实际精度,比如最接近的毫秒?

Mar*_*ner 7

ntpstat“时间校正到内部”后显示的值是根色散+根延迟/2。ntpq -p而不是显示“根色散”运行ntpq -c rl

尽管如此,很明显,缺乏准确性的主要来源是离散而不是延迟(仅为 0.964)。

离散度是“相对于主要参考源的名义误差”。我已经简要浏览了 NTPv4 RFC,这就是它要说的:

色散 (epsilon) 表示测量中固有的最大误差。它以等于最大规范系统时钟频率容差 (PHI) 的速率增加,通常为 15 PPM。1 PPM 等于 10^(-6) 秒/秒。

使用 rrdtool 术语分散不是一个量表,而是一个计数器。看到较大的值可能并不表示有任何问题。

唉,我无法很好地理解 ntp 算法,无法了解如何使这个数字更小。我注意到这个值偶尔会被重置。我不知道为什么。


Chr*_*rpe 6

我询问上述硬件的原因是因为许多 GPS 设备(层 0,“根”源)连接到计算机,然后通过串行链路充当 NTP 服务器。

由于信令开销/中断等待,串行连接线路上通常有 1-5 毫秒的抖动。因此,我猜您的 NTP 源正在从串行源读取。

您可以对串行连接进行一些调整以减少抖动。首先,禁用 FIFO 可能会获得不错的结果。

http://support.ntp.org/bin/view/Support/KnownHardwareIssues#Section_9.1.5http://www.febo.com/time-freq/ntp/jitter/index.html