## 概念是什么
发现服务器比标准时间快了几秒,第一反应往往是手工把时间拨回去,这对运行中的系统是有害操作。正确做法是让时间同步服务以渐进方式把偏差拉回:不是瞬间跳变,而是微调时钟频率,让慢表走快点、快表走慢点,在一段时间里平滑收敛。chrony 的默认策略就是这种渐进修正。
## 背后原理
时间跳变对系统的伤害在于因果颠倒:两批事件的时间戳顺序颠倒,定时器集体错乱,数据库与消息队列基于时间的逻辑直接出问题。渐进修正把本地时钟频率在标准值附近微调,例如快几秒的机器让它的秒略微拉长,每秒多追回一点偏差,业务完全无感。偏差过大时渐进追回耗时太长,服务会按策略执行一次步进跳变,通常安排在启动初期或偏差超阈值的时刻。
chronyc tracking chronyc sources -v chronyc makestep
## 最小实操
发现偏差先看状态:tracking 输出给出当前快慢多少、频率修正多少;sources 看上游是否可达与稳定。小偏差不用干预,服务会自己收敛;要确认收敛进度就隔几分钟再看一次 tracking 的偏差值,它应当单调缩小。上游全部不可达才是需要处理的问题,检查出网与 DNS 后重启服务。
## 常见错误
手工 date 改时间是最大禁忌,改完随即被同步服务拉回,来回拉锯还会在日志里留下鬼影记录。跳变指令只在维护窗口或初始化阶段使用,运行中业务在线时慎用。证书校验失败先看时间,快几秒就可能让基于时间的校验失败,这常是问题根源而不是巧合。
监控上给时间偏差设个宽松告警,超过一秒就提醒,比人工定期核对省心。多机环境的偏差还要横向看:各机与同一上游的偏差曲线画在一起,突然分道扬镳的那台先查。虚拟机迁移与宿主维护后的时段主动确认一次时间状态,这两类事件之后的时间漂移报告在云环境里占比很高。顺云云服务器默认已配置托管的时间同步,自定义同步服务前先确认默认行为,避免两套机制互相拉扯。