为什么自夏令时以来,托管在 Digital Ocean 上的服务器上的 NTP 不同步?

为什么自夏令时以来,托管在 Digital Ocean 上的服务器上的 NTP 不同步?

自夏令时以来,Sensu 监视器表明在 Digital Ocean(DO)上运行的多个服务器的 NTP 不同步(12.345404ms- 98.338222ms):

CheckNTP WARNING: NTP offset by 34.073039ms

讨论

  1. 也许NTP配置不正确?

    NTP 配置有偏差,但现在已使用相同的配置应用Geerlingguy 的 ntp 角色

  2. 如果 NTP 服务器重新启动,会发生什么情况?

    监视器显示NTP已同步,但过了一会儿问题又出现了。

  3. 如果 NTP 服务器停止,手动设置时间并重新启动 ntp 服务器,会发生什么情况?

    与三相同。

  4. 也许该问题与 DO 平台有关?

    未知。互联网上未找到任何解决方案。

  5. 如果选择最近的位置作为时间服务器,会发生什么情况?

    server 0.nl.pool.ntp.org iburst
    server 1.nl.pool.ntp.org iburst
    server 2.nl.pool.ntp.org iburst
    server 3.nl.pool.ntp.org iburst
    

    当 NTP 服务器重新启动时,时间已同步,但之后时间又不同步。

  6. 水滴是否会同步,但后来又不再同步?

是的,似乎是这样:

在此处输入图片描述

答案1

NTP(和 SNTP)不是提供有关时区/夏令时的信息。相反,它提供了一个精确的 UTC 参考时钟,需要由客户端解释才能显示正确的当地时间。这意味着夏令时对 NTP 时钟漂移/偏差绝对没有影响。

一些建议:

  • 您使用的是什么 NTP 客户端?RHEL7 附带了chrony,我发现它的准确性不如普通的ntpd + ntpdate

  • iburst从 ntp 配置文件中删除该选项并重新启动 NTP 客户端

  • 确保使用可访问的 NTP 服务器低 RTT(即:你可以快速 ping 通)

  • 检查网络拥塞

  • 请务必阅读NTP 手册页因为它确实有一些很棒的文档

答案2

请注意,根据我的经验,所有 VPN 系统(不仅仅是 DigitalOcean 系统)都使用主时钟,也就是运行主机服务器上的时钟。该服务器已按预期同步(可能使用 NTP),而且我还没有看到即使没有运行 NTP 也未同步的 VPN。

我还注意到一个问题,即运行 NTP 比不运行 NTP 更容易导致问题。这是因为 CPU 时钟可能不是 100% 为您的 VPN 保留的,因此计时器不会像预期的那样精确。NTP 需要这些计时器的准确性来知道如何扭曲系统时钟。但是,我认为在 DigitalOcean,您总是会获得为您保留的 CPU。因此,计时器可以按预期工作。在我运行 VirtualBox 的家用服务器上,我得到的 CPU 计时器时间完全不准确……因为 VirtualBox 不会为其运行的每个 VPN 保留一组特定的 CPU。

相关内容