发布于2026-08-17 阅读(0)
扫一扫,手机访问
Linux系统时钟偏差需通过chrony持续校准而非手动设偏移,driftfile记录固有漂移率自动补偿,RTC必须设为UTC并同步,虚拟机需启用kvm-clock时钟源。

Linux 并没有提供类似 set-clock-offset +5s 这样可以直接把时间加减几秒的接口。所谓“配置偏差”,说到底并不是手动塞进一个固定偏移量,而是通过持续校准,让系统时钟一步步贴近真实的 UTC。也正因为如此,如果在 chronyc tracking 的输出里看到 Offset 是 -123.456ms,不必紧张,这恰恰说明系统已经在自动修正;这个值既不需要手动去“配置”,也不应该人为干预。
driftfile 用来保存系统时钟本身的漂移率(单位是 ppm)。chronyd 启动后,会先读取这份数据,用它提前判断并修正硬件时钟究竟是偏快还是偏慢。一般来说,这个文件位于 /var/lib/chrony/drift,内容通常像 -23.456 这样(表示每百万秒慢 23.456 微秒)。
host 时钟源(检查 /sys/devices/system/clocksource/clocksource0/current_clocksource 是否为 kvm-clock)当偏差超过 1 秒且 chrony 无法自动收敛(比如网络中断后长时间离线),可触发强制步进(makestep)。但注意:这会跳变时间,破坏单调性,数据库、Kafka、ZooKeeper 等服务可能出错。
chronyc tracking | grep "Offset"sudo chronyc -a makestepmakestep,需先在 /etc/chrony/chrony.conf 加一行:makestep 1.0 -1(表示对任意大于 1 秒的偏差都允许步进)timedatectl status | grep "System clock synchronized" 应为 yes即使 chronyd 把系统时钟调得非常准,如果关机后 RTC 没同步、或者 BIOS 时间本身漂移严重,下次开机又会回到旧时间。这是最容易被忽略的环节。
timedatectl status | grep "RTC in local TZ" 输出应为 nosudo hwclock --systohc --utcsystemctl is-enabled systemd-hwclock-sa ve.service,若为 disabled,则启用:sudo systemctl enable systemd-hwclock-sa ve.service
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9