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

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

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

但是,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. 有没有什么办法可以测量同步的实际精度,比如说最接近的毫秒?

ntpstat在“time correct to within”之后显示的值是根散度+根延迟/ 2. ntpq -p不会显示“root dispersion”运行ntpq -c rl

尽pipe如此,缺乏准确性的主要原因是分散而非延迟(仅为0.964)。

分散是“相对于主要参考源的标称误差”。 我简单地浏览了NTPv4 RFC,这就是它必须说的:

色散(ε)表示测量中固有的最大误差。 它的增长速度等于最高纪律的系统时钟频率容限(PHI),一般为15PPM。 1 PPM等于10 ^( – 6)秒/秒。

使用rrdtool术语分散不是衡量标准,而是衡量标准。 看到一个巨大的价值可能不表示任何错误。

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

我之所以问到上面的硬件,是因为许多GPS设备(第0层,“根”源)连接到计算机,然后通过串行链接作为NTP服务器。

由于信令开销/中断等待,串行连接通常具有1-5ms的抖动。 因此,我猜你的NTP源是从串行源读取的。

您可能会在串行连接上进行一些调整以减less抖动。 Primaily,禁用FIFO可能会让你体面的结果。

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

时间在5毫秒内是正确的! 5毫秒是5/1000秒。 100毫秒以下的任何事情都可以轻松接受,除了less数几种情况之外,在这种情况下,您不会使用GPS,而是使用本地primefaces钟和两个外部参考时钟。 我们在10毫秒内与ntp池。