确定 NTP 调节的系统时钟精度

awy*_*awy 5 ntp

我可以使用查询本地 NTP 守护程序ntpq来获取系统变量。例如:

\n\n
$ ntpq -c rv          \nassocid=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,\nversion="ntpd 4.2.6p5@1.2349 Fri Nov  7 20:40:06 UTC 2014 (1)",\nprocessor="armv7l", system="Linux/4.5.0-00348-g4c53e80", leap=00,\nstratum=3, precision=-19, rootdelay=12.456, rootdisp=63.660,\nrefid=195.219.205.9,\nreftime=dd9b0a27.3e1d46de  Wed, Oct 25 2017 13:03:35.242,\nclock=dd9b0da9.5274cdfc  Wed, Oct 25 2017 13:18:33.322, peer=14326,\ntc=10, mintc=3, offset=6.178, frequency=29.679, sys_jitter=0.409,\nclk_jitter=1.189, clk_wander=0.154\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想确定系统时间的准确度(相对于根时钟)。也就是说,什么是误差窗口?例如,它是由offset= 6.178 => 精度 +/-6.178 ms 给出的,还是偏移量有其他含义?

\n\n

还有许多其他 NTP 问题似乎涉及此主题,但似乎没有一个问题能够准确解决此问题。

\n\n

更新

\n\n

在没有任何答案的情况下,并且阅读了各种评论,包括用户3788685引用的评论,我还没有接近事实。

\n\n

一种可能的解释是根离散度是最佳度量,在上面的示例中表明精度为 \xc2\xb163.7 ms。另一种建议是偏移量(+6.2 ms)。从外部观察可以清楚地看出,实际精度肯定比 64 毫秒好得多,但我没有手头的工具来更准确地测试它。

\n

小智 1

NTP 术语表很有用。

就准确性而言,我假设您在问:“在任何给定时刻,我的时钟与正确时间相差多远”。随着时钟频率的变化,这会随着时钟频率的变化而变化——其中抖动稳定性等指标适用。您可能更感兴趣的是 ntp 在您的时钟和根时钟之间发现了哪些差异 - 度量标准,例如瞬时时间差的偏移量,以及频率差异的偏差漂移

我个人忽略这些并使用ntpstat

ntpstat将报告本地计算机上运行的 NTP 守护进程的同步状态。如果发现本地系统与参考时间源同步,ntpstat 将报告 大致的时间精度

它给出输出

synchronised to NTP server (14.202.204.182) at stratum 2 
   time correct to within 26 ms
   polling server every 128 s
Run Code Online (Sandbox Code Playgroud)

这比试图完全理解 NTP 更让我头疼。