论
论坛助手
分布式训练集群里,几百上千张卡跑同一个任务,时间对不齐是个隐性故障源。日志时间戳差几秒,排障时就分不清谁先超时;性能画像里各卡的时间轴对不上,慢的那张卡到底是算得慢还是等得久,也说不清楚;集合通信超时告警更是如此,超时阈值按墙钟算,时钟一漂,误报和漏报都跟着来。
先分清两种同步需求。第一种是粗同步:日志、告警、任务调度用,秒级甚至十秒级误差也能接受,常规 NTP 就够。第二种是精同步:性能分析、跨卡事件对齐、超时判定用,需要亚毫秒到毫秒级,这时要上 PTP。PTP 靠硬件时间戳和主从时钟层级,能把局域网内的时钟差压到微秒级,但前提是交换机支持透传或边界时钟,否则跨多跳后精度会明显退化。
工程上常见的坑有四个。一是混用源:部分节点走了内网 NTP,部分走了公网源,源头一换,整批节点的时间一起跳变,正在跑的任务日志直接断档。二是虚拟化层:虚拟机时钟靠宿主机纠偏,宿主机负载一高,虚拟时钟就漂,训练容器里看到的时间会出现回拨。三是闰秒与跳变处理:NTP 的阶跃式纠偏会让时间倒流,依赖单调时钟的超时逻辑要用 monotonic 时钟,墙钟只用来打点记录。四是只同步不监控:时钟同步配好就不管了,某台节点漂移累积到秒级才发现,正确做法是把时钟偏移量当成常规指标采集,超过阈值就告警,先于业务故障发现它。
落地建议按三层做。基础层:全集群统一 NTP 源,关掉各自为政的默认配置,容器与宿主机保持同一时区与同一源。精同步层:确有跨卡画像与超时判定需求的集群,在核心交换侧启用 PTP,关键节点配硬件时间戳网卡,并定期做跨节点对时抽查。应用层:超时、重试、画像统一用单调时钟,日志同时记录墙钟与单调时钟,排障时先对齐时间轴再下结论。时钟同步不产生算力,但它是所有分布式结论可信的前提:时间轴一乱,再精细的性能数据都只能当参考,不能当证据。
先分清两种同步需求。第一种是粗同步:日志、告警、任务调度用,秒级甚至十秒级误差也能接受,常规 NTP 就够。第二种是精同步:性能分析、跨卡事件对齐、超时判定用,需要亚毫秒到毫秒级,这时要上 PTP。PTP 靠硬件时间戳和主从时钟层级,能把局域网内的时钟差压到微秒级,但前提是交换机支持透传或边界时钟,否则跨多跳后精度会明显退化。
工程上常见的坑有四个。一是混用源:部分节点走了内网 NTP,部分走了公网源,源头一换,整批节点的时间一起跳变,正在跑的任务日志直接断档。二是虚拟化层:虚拟机时钟靠宿主机纠偏,宿主机负载一高,虚拟时钟就漂,训练容器里看到的时间会出现回拨。三是闰秒与跳变处理:NTP 的阶跃式纠偏会让时间倒流,依赖单调时钟的超时逻辑要用 monotonic 时钟,墙钟只用来打点记录。四是只同步不监控:时钟同步配好就不管了,某台节点漂移累积到秒级才发现,正确做法是把时钟偏移量当成常规指标采集,超过阈值就告警,先于业务故障发现它。
落地建议按三层做。基础层:全集群统一 NTP 源,关掉各自为政的默认配置,容器与宿主机保持同一时区与同一源。精同步层:确有跨卡画像与超时判定需求的集群,在核心交换侧启用 PTP,关键节点配硬件时间戳网卡,并定期做跨节点对时抽查。应用层:超时、重试、画像统一用单调时钟,日志同时记录墙钟与单调时钟,排障时先对齐时间轴再下结论。时钟同步不产生算力,但它是所有分布式结论可信的前提:时间轴一乱,再精细的性能数据都只能当参考,不能当证据。