Linux系统时钟偏差需通过chrony持续校准而非手动设偏移,driftfile记录固有漂移率自动补偿,RTC必须设为UTC并同步,虚拟机需启用kvm-clock时钟源。

如何在Linux中配置具体的系统时钟偏差

系统时钟偏差不是“设个偏移值”就能解决的

Linux 并没有提供类似 set-clock-offset +5s 这样可以直接把时间加减几秒的接口。所谓“配置偏差”,说到底并不是手动塞进一个固定偏移量,而是通过持续校准,让系统时钟一步步贴近真实的 UTC。也正因为如此,如果在 chronyc tracking 的输出里看到 Offset 是 -123.456ms,不必紧张,这恰恰说明系统已经在自动修正;这个值既不需要手动去“配置”,也不应该人为干预。

chrony 的 driftfile 才是真正影响长期偏差的关键

driftfile 用来保存系统时钟本身的漂移率(单位是 ppm)。chronyd 启动后,会先读取这份数据,用它提前判断并修正硬件时钟究竟是偏快还是偏慢。一般来说,这个文件位于 /var/lib/chrony/drift,内容通常像 -23.456 这样(表示每百万秒慢 23.456 微秒)。

手动干预偏差只在极端场景下有效,且必须带条件

当偏差超过 1 秒且 chrony 无法自动收敛(比如网络中断后长时间离线),可触发强制步进(makestep)。但注意:这会跳变时间,破坏单调性,数据库、Kafka、ZooKeeper 等服务可能出错。

硬件时钟(RTC)不准会掩盖系统时钟的校准效果

即使 chronyd 把系统时钟调得非常准,如果关机后 RTC 没同步、或者 BIOS 时间本身漂移严重,下次开机又会回到旧时间。这是最容易被忽略的环节。

本文转载于:https://www.php.cn/faq/2994508.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。