9 months ago
- 本文探讨了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纳秒的亚微秒级同步是可行的。