Hasty Briefsbeta

双语

The Limits of NTP Accuracy on Linux

9 months ago
  • #Time Synchronization
  • #Linux
  • #NTP
  • 本文探讨了Linux系统上NTP(网络时间协议)的精度极限,旨在实现微秒级的时间同步。
  • GPS接收器存在固有误差,设备间差异可达200纳秒,高端模块的数据手册显示抖动约为5纳秒。
  • 网络复杂性会引入200-300纳秒的系统性误差,非对称路径和不同网卡(网络接口控制器)性能会影响时间精度。
  • 不同网卡对亚微秒级同步的适用性各异,英特尔E810和X710表现良好,而Realtek网卡可靠性较低。
  • Linux系统可能因低延迟问题出现显著时间偏差,SMBIOS或电源管理导致的停顿可达数百微秒。
  • 测试环境包含多台GPS授时NTP服务器和八台相同配置的Linux服务器,使用Chrony进行时间同步,指标存储在Prometheus中。
  • 网络拓扑结构(包括冗余链路和等价多路径路由)会因流量路径不对称导致时间不一致。
  • Chrony声称可实现25-110纳秒的中值偏移,但实际测量受GPS漂移和网络不对称性影响存在差异。
  • 跨服务器同步测试显示最大207纳秒的偏移,凸显出现有硬件实现纳秒级精度的局限性。
  • 需要调整国际原子时偏移量来对齐NTP源,从而将不一致性从微秒级降低到纳秒级。
  • 抖动测量表明:配备优质网卡和GNSS模块的桌面系统表现最佳(约1.01微秒),树莓派NTP服务器抖动较高(约2.02微秒)。
  • 影响时间同步的因素包括:无硬件时间戳的网卡、网络隧道、数据包聚合和软件处理延迟。
  • 作者结论认为:在当前硬件条件下实现约10纳秒精度不现实,但全网范围实现200-500纳秒的亚微秒级同步是可行的。