首页/AI/大模型部署与运维速查/时间同步:chrony 检查与漂移处置
运维监控与排障50 条

时间同步:chrony 检查与漂移处置

分布式推理排障靠时间轴对齐:网关、引擎、内核与监控的时间必须一致;用 chrony 检查同步状态与偏移,漂移超阈值先修时间再看业务。

为什么时间必须先对齐

分布式推理链路上有网关、引擎、宿主内核、监控采集和日志系统多个时间源。排障时靠的是把各处的日志按时间轴拼起来,一旦某台机器偏移到秒级,因果顺序就会颠倒——看起来是引擎先报错,实际是网关先超时。chrony 是当前主流发行版默认的 NTP 实现,比老的 ntpd 收敛更快,也适合虚拟化与频繁休眠的环境。

基本信息

适用平台RHEL/CentOS 8+、Ubuntu、Debian 等 Linux 发行版
服务名chronyd(RHEL 系与 Debian 系均为 chrony)
配置文件/etc/chrony.conf 或 /etc/chrony/chrony.conf
常用命令chronyc tracking、chronyc sources -v、timedatectl status
权限要求查看状态普通用户可读,改配置需 root

典型使用场景

  • 事故复盘前的前置检查:确认各节点时间一致,日志时间轴才可用来定因果
  • 发现日志乱序:同一请求在网关与引擎的记录顺序矛盾,先怀疑时钟偏移
  • 新节点上线纳入统一时间源:避免使用与本机房不同的默认 NTP 池
  • 虚拟化平台时钟不稳:确认已启用平台提供的时间同步能力
  • 证书与令牌报错排查:系统时间偏差会导致证书校验失败与令牌提前失效

检查时间状态

检查时间状态
timedatectl status          # 系统时钟、时区与 NTP 是否启用
chronyc tracking            # 偏移量、层级与同步状态
chronyc sources -v          # 各时间源的可达性与偏差
chronyc waitsync 30 0.01    # 等待偏差收敛到 10 毫秒以内
chronyc makestep            # 立即校准(仅在确认可承受时间跳变时使用)
date -u                     # 与下游日志比对时统一看 UTC

tracking 字段读法

字段含义正常与异常
Reference ID当前选中的时间源显示为具体上游地址或本机标识
Stratum时间源层级数字越大离权威时钟越远,2 到 4 属常见范围
System time与参考源的当前偏差持续在毫秒级内属正常,秒级以上需排查
Last offset最近一次校正的偏差突然变大说明链路或上游出现抖动
Frequency本机时钟频偏数值稳定说明晶振正常,剧烈漂移多为虚拟化环境
Leap status闰秒状态正常应为 Normal
容器共享宿主内核时钟:时间同步在宿主做,不要在每个容器里单独跑 NTP 客户端,否则两套时间源互相拉扯,日志越修越乱。
时间大幅回跳属于高风险变更:会影响证书校验、令牌有效期与依赖时间的业务逻辑,改时间要按变更流程走并记录影响窗口。

易错点

  • 在容器里启动 NTP 客户端:与宿主时钟互相校正,容器内时间反复跳变,日志时间失去可信度
  • 只看服务是否运行不看偏差:chronyd 在跑不等于已同步,Stratum 为 0 或未选中源时并未真正对齐
  • 用一次 makestep 处理持续漂移:掩盖了虚拟化或硬件时钟的真实问题,事后仍会重复发生
  • 时间源混用不一致:部分节点指向公网池、部分指向内网服务器,节点之间相差可达数百毫秒

数据来源与参考

  • chrony 官方文档(chrony.tuxfamily.org)
  • systemd timedatectl 手册(freedesktop.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌