我有一台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
两个问题:
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.5 。 http://www.febo.com/time-freq/ntp/jitter/index.html
时间在5毫秒内是正确的! 5毫秒是5/1000秒。 100毫秒以下的任何事情都可以轻松接受,除了less数几种情况之外,在这种情况下,您不会使用GPS,而是使用本地primefaces钟和两个外部参考时钟。 我们在10毫秒内与ntp池。