运行在青云私有云上的 Ubuntu 22.04 虚拟机,通过 systemd-timesyncd 采用 ntp.ubuntu.com 服务器进行 NTP 同步。在 /var/log/syslog 中每隔大约半小时就会产生两条来自 systemd-resolved 的日志提示系统时间更改。
一台虚拟机 xxx 时间突然向过去跳变,再恢复正常:
May 31 17:18:44 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:18:51 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:48:48 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:48:54 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
另一台虚拟机时间 yyy 突然向将来跳变,再恢复正常:
May 31 17:53:58 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 17:52:22 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 18:24:03 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 18:22:27 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
在服务器上通过 top (间隔设为 0.1 秒)现场观测观察到的时间跳变现象与日志中的记录相符。
虚拟机上 /sys/devices/syste/clocksource/clocksource0/current_clocksource 为 kvm-clock 。
以上现象是什么原因造成的?是否说明虚拟机所在主机的时间不准,或者主机上的时间同步与虚拟机存在冲突?有没有什么办法可以缓解或解决时间上的跳变?
如果禁用虚拟机 xxx 上的 systemd-timesyncd 服务,日志中发生时间变化的间隔变长( 1.5 小时或 2 小时),且每次只有一行,不再出现跳变。但是这会导致系统时间始终比北京时间慢 6~7 秒(可能刚好与启用时间同步时跳变的时间差相等?)。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.