如何判断当前系统时间的可靠性[正确性]?

如何判断当前系统时间的可靠性[正确性]?

我正在开发一个项目,该项目将在很长一段时间(数年)内以相当高分辨率(每秒 50 个样本)获取大量带时间戳的数据。

该解决方案包括各种故障转移机制。在该项目的生命周期内,可以合理地假设一些数据记录器需要更换。一旦其他人已经声明了数据采集,IE 中的一些将上线。

考虑到数据的性质,如果某些数据记录的时间戳不准确,甚至是几秒钟的误差,那将是非常糟糕的。对于此解决方案来说,NTP 应该足够稳定,即使网络丢失几个小时,内部时钟的漂移也应该太小,不会导致严重问题。实际上,出于深奥的原因,我们不太关心互联网中断期间的数据

是什么让我烦恼数据记录器重新启动时会发生什么。或者第一次启动。我希望设备在融入故障转移解决方案之前使用 NTP 可靠地稳定其系统时间。

如何确定系统时间相对于 chrony 或 ntpd 的当前可靠性。也就是说,我怎样才能从其中获得价值,告诉我:

  • 他们最近一次同步是多久前的事
  • 如果可能,上次更新的置信度值*

我所说的置信度是指 NTP 数据包的总往返时间……这当然是 N​​TP 规范的一部分。

答案1

我不知道您是否阅读过 NTPv3 的功能,或者chronydtracking输出的含义:

chronyc> tracking
Reference ID    : AC14100E (p22.ntp-pool.domain.org)
Stratum         : 3
Ref time (UTC)  : Thu Nov 23 14:10:49 2023
System time     : 0.000021786 seconds fast of NTP time
Last offset     : +0.000005573 seconds
RMS offset      : 0.000017535 seconds
Frequency       : 13.186 ppm fast
Residual freq   : +0.002 ppm
Skew            : 0.018 ppm
Root delay      : 0.000255787 seconds
Root dispersion : 0.001269149 seconds
Update interval : 64.2 seconds
Leap status     : Normal

或者ntpqrl输出:

associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,
version="ntpd [email protected] Wed Jun 14 05:48:57 UTC 2023 (1)",
processor="x86_64", system="Linux/4.12.14-122.179-default", leap=00,
stratum=2, precision=-24, rootdelay=0.157, rootdisp=5.951,
refid=172.20.2.25,
reftime=e909db6b.de677ef7  Thu, Nov 23 2023 15:08:43.868,
clock=e909dc91.e033d3a0  Thu, Nov 23 2023 15:13:37.875, peer=12886, tc=9,
mintc=3, offset=+0.007816, frequency=+11.587, sys_jitter=0.222731,
clk_jitter=0.022, clk_wander=0.004

sysinfo您也可以尝试kerninfo在最新版本中:

ntpq> kerninfo
associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,
pll offset:            0.005928
pll frequency:         11.5873
maximum error:         284.634
estimated error:       0.022
kernel status:         pll nano
pll time constant:     9
precision:             1e-06
frequency tolerance:   500
pps frequency:         0
pps stability:         0
pps jitter:            0
calibration interval   0
calibration cycles:    0
jitter exceeded:       0
stability exceeded:    0
calibration errors:    0
ntpq> sysinfo
associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,
system peer:        172.20.2.25:123
system peer mode:   client
leap indicator:     00
stratum:            2
log2 precision:     -24
root delay:         0.135
root dispersion:    1.135
reference ID:       172.20.2.25
reference time:     e909dd93.de684491  Thu, Nov 23 2023 15:17:55.868
system jitter:      0.251147
clock jitter:       0.027
clock wander:       0.004
broadcast delay:    -50.000
symm. auth. delay:  0.018

您可能想阅读 NTP 常见问题解答监控

相关内容