为什么电脑重启后时钟会慢几秒?

为什么电脑重启后时钟会慢几秒?

我的计算机 24/7 运行,并且在每次内核/systemd/glibc 升级后晚上自动重新启动。在 Fedora 上,这种情况每隔几天就会发生一次。

系统时钟使用 NTP 协议进行同步chrony。硬件时钟同步:

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

通常我认为系统时间和硬件时钟之间没有区别。

但重启后:

28.02.2021 00:34:08.657 chronyd: System clock wrong by -4.021024 seconds

或者今晚:

mar 02 01:48:18 chronyd[990]: chronyd exiting
mar 02 01:48:18 systemd[1]: Stopped NTP client/server.
-- Reboot --
mar 02 01:49:37 systemd[1]: Starting NTP client/server...
mar 02 01:49:37 chronyd[989]: chronyd version 4.0 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG)
mar 02 01:49:37 chronyd[989]: Frequency -13.026 +/- 0.008 ppm read from /var/lib/chrony/drift
mar 02 01:49:37 chronyd[989]: Using right/UTC timezone to obtain leap second data
mar 02 01:49:37 systemd[1]: Started NTP client/server.
mar 02 01:49:51 chronyd[989]: Selected source 162.159.200.123 (hu.pool.ntp.org)
mar 02 01:49:51 chronyd[989]: Time smoothing activated (leap seconds only)
mar 02 01:49:51 chronyd[989]: System clock wrong by -9.232765 seconds
mar 02 01:49:42 chronyd[989]: System clock was stepped by -9.232765 seconds

如果我手动停止chrony,等待 2 分钟并重新启动它,则不会发生任何不良情况(如预期)。

我在网上搜索了很多并阅读了很多帖子,但仍然无法理解我做错了什么。

更新,输出timedatectl

               Local time: St 2021-03-03 14:11:27 CET    
           Universal time: St 2021-03-03 13:11:27 UTC    
                 RTC time: St 2021-03-03 13:11:27        
                Time zone: Europe/Bratislava (CET, +0100)
System clock synchronized: yes                           
              NTP service: active                        
          RTC in local TZ: no  

输出hwclock --verbose

hwclock from util-linux 2.36.1
System Time: 1614784382.362288
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2021/03/03 15:13:03
Hw clock time : 2021/03/03 15:13:03 = 1614784383 seconds since 1969
Time since last adjustment is 1614784383 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2021-03-03 16:13:02.344795+01:00

systemd-timesyncd已禁用且不活动。

答案1

尝试命令

timedatectl

查看 RTC 时钟是否曾经调整过,或者一直处于关闭状态。您还可以使用hwclock或类似的命令。

对于 ntpd 服务,该服务现已在许多较新的发行版中被弃用并被替换,我知道它在关闭时在磁盘上写入了一个漂移文件,并将硬件时钟设置为正确的时间。在漂移文件中,有关于系统时钟精度、关机时间等信息。当您打开计算机时,ntpd会检查漂移文件,并根据记录的漂移调整系统时钟,以更快地同步。

chrony同步速度比 ntpd 快得多,因为这需要越来越多的虚拟机,而虚拟机现在有硬件时钟。我想知道 chrony 是否会在关机时调整硬件时钟。也许您应该检查一下差异是否只是在扩大。在这种情况下,明智的做法是至少在关机时设置硬件时钟,或者了解系统为何不调整硬件时钟。

也许存在一些硬件问题。几年前我遇到过一个最奇怪的案例,当时一台计算机的时间在一分钟内关闭了大约 17 秒。问题出在许多硬件中断上,对此我首先怀疑是某些特殊的 PCI 卡。事实证明,KVM 切换器支持通过 USB 传输某种声音,键盘和鼠标也可以通过 USB 传输。没有那个 KVM 切换器一切都工作正常。

相关内容