我可以使用查询本地 NTP 守护程序ntpq来获取系统变量。例如:
$ 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\nRun Code Online (Sandbox Code Playgroud)\n\n我想确定系统时间的准确度(相对于根时钟)。也就是说,什么是误差窗口?例如,它是由offset= 6.178 => 精度 +/-6.178 ms 给出的,还是偏移量有其他含义?
还有许多其他 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 更让我头疼。