重启后系统时钟偏差500ms正常吗?

重启后系统时钟偏差500ms正常吗?

如果我$ ntpq -p 立即启动,重新启动后,我可以看到系统时钟最多有 600 毫秒的偏差。

它需要一段时间才能收敛到正确的 NTP 时间,因此在我们的用例中有点令人恼火。 (Ceph 监视器,对时间敏感)。接下来的重新启动将再次显示时钟倾斜。

重新启动后是否会出现这种情况,即 PC 的 RTC 是否不准确?

我已经做过调查的事情:

  1. 在多台(虽然非常相似)服务器(HP dl360 gen9)上看到过它。但也是 2009 年的旧白色标签桌面。
  2. 将聚合后的NTP时间保存到RTC,然后从RTC复制到系统时钟。我只能看到大约 10 毫秒的偏差。也许很天真,但是就系统时间而言,这基本上模仿了重新启动。
  3. 重启前显式保存到 RTC;它仍然发生
  4. 使用 kexec-reboot;它仍然发生。
  5. 到目前为止仅在 ubuntu 16.04 上进行了测试。

答案1

RTC 很可能只存储秒,因此(除非内核能够判断何时从一秒切换到下一秒)它本质上会关闭 1/2 秒,即 500 毫秒。向 RTC 节省时间时也是如此;除非内核可以控制 1 秒滴答发生的时间,否则保存最多会延迟 500 毫秒。

明显的解决方法是让 NTP 更快地修复它:如果您使用-g(或更强制地,-G)启动 ntpd,它将被允许(或强制)在启动时步进时钟。与iburst您的server/线路一起pool,这应该可以在十秒左右的时间内为您提供准确的时钟。

然后,您可以使用,例如,ntp-wait在 NTP 准备就绪之前不启动时间敏感的工作负载。

相关内容