我有一个本地网络,微控制器 ARM 作为 NTP 服务器,我有一台运行 ubuntu 16.04 LTS 作为 NTP 客户端的台式计算机。
一旦我从ntpd -g -c /etc/ntp.conf
以下 ntp 配置文件开始
server 192.168.0.11 minpoll 4 maxpoll 4
Run Code Online (Sandbox Code Playgroud)
ntpd 设置时间后的第一个偏移显示了非常好的结果,即低于 1ms。我通过ntpq -p
.
然而,偏移量在大约 55ms 后缓慢上升。1000 秒。对于我的应用程序来说,这种高偏移是不可接受的。但是在偏移量达到 55 ms 后,ntpd
似乎再次设置时间并且偏移量变得足够小且稳定(< 1ms)。似乎ntpd
让时钟漂移了一段时间,在(太)长的时间之后,守护进程对 NTP 客户端和 NTP 服务器之间的时钟漂移采取对策。
使用ntpd -g -c /etc/ntp.conf -f /etc/ntp.drift
wherentp.drift
由 生成ntpd
,偏移量将始终保持在 1ms 以下,即没有时钟漂移引起的偏移量线性上升;期望的行为。
现在我的问题:在我的应用程序中,我们不能让ntpd
运行一段时间来计算很长一段时间后的时钟漂移,同步必须在启动 NTP 客户端后几秒钟后进行,并且偏移量必须保持不变稳定的。
如何ntpd
在不确切知道时钟漂移的情况下获得稳定且小的偏移量?