我有一台远程无人服务器,最近出现了一些非常奇怪的时钟/NTP 行为。症状:
- 非常高的抖动
- ntpq -pn 返回:
- 尽管 NTP 服务器距离 CAT5e 仅 1 米,并且直接连接到相关机器,但“何时”计数仍重置为 1。没有数据包丢失或其他通信故障的迹象。
- 通常,尽管我知道相关的 NTP 服务器在访问其第 2 层服务器时没有任何问题,但 refid 仍为“LOCAL(0)”。
admin@machine:~$ date && ntpq -pn Thu 24 May 19:34:02 UTC 2018 remote refid st t when poll reach delay offset jitter ============================================================================== <local_ntpserver> LOCAL(0) 15 u 120 128 377 0.120 -486.68 909.283 admin@machine:~$ date && ntpq -pn Thu 24 May 19:38:37 UTC 2018 remote refid st t when poll reach delay offset jitter ============================================================================== <local_ntpserver> <remote_ntpserver> 3 u 1 128 377 0.123 -1854.0 2164.83
从本地 NTP 服务器(即在同一物理位置运行的机器):
remote refid st t when poll reach delay offset jitter
==============================================================================
<remote_ntpserver> <remote_ntpserver2> 2 u 49 64 377 5076.18 1546.21 299.468
您可以看到,尽管跨越高延迟无线网络,但该本地 NTP 服务器仍具有良好的覆盖范围和相对较低的抖动。
我已经在主机器上将 minpoll 和 maxpoll 修改为较低的值(4、5),以便 ntp 运行得更频繁,并且这种“创可贴”解决方案似乎让主机器在某种程度上与现实联系在一起(不像以前那样每天多次偏离几分钟),但我想找到这种奇怪行为的根源。
我有一个理论,即 tsc 时钟可能会大幅漂移,但我没有证据证明这一点。不过,这可以解释高抖动,而这反过来又可能导致 NTP 中出现一些奇怪的行为。
无论如何,我不明白为什么 refid 一直恢复为“LOCAL (0)”,而事实显然并非如此。NTP 服务没有重新启动。例如:
● ntp.service - LSB: Start NTP daemon
Loaded: loaded (/etc/init.d/ntp)
Active: active (running) since Wed 2018-05-23 15:58:50 UTC; 1 day 3h ago
但在过去几个小时里,我观察到了大量这种恢复为“LOCAL (0)”的情况,所以它并不是从头开始,需要时间来初始化或收集正确的数据。