All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Practical Limits of Linux Time Synchronization: GPS Accuracy and Hardware Constraints

By

signa11

9mo ago· 20 min readenInsight

Summary

This technical article explores the practical limits of time synchronization accuracy on Linux systems using NTP and GPS sources. The author shares findings from extensive testing, revealing that GPS receivers typically show 200ns differences between units, network complexity adds 200-300ns systemic error, and hardware quality significantly impacts timing precision. The author achieves 500ns synchronization across most systems, which meets their distributed tracing needs but falls short of initial expectations of 1-10μs accuracy.

Key quotes

· 5 pulled
GPSes don't return perfect time. I routinely see up to 200 ns differences between the 3 GPSes on my desk when viewing their output on an oscilloscope.
Even small amounts of network complexity can easily add 200-300 ns of systemic error to your measurements.
Different NICs and their drivers vary widely on how good they are for sub-microsecond timing.
A lot of Linux systems are terrible at low-latency work. There are a lot of causes for this, but one of the biggest is random 'stalls' due to the system's SMBIOS running to handle power management.
All in all, I'm able to sync clocks to within 500 ns or so on the bulk of the systems on my network. That's good enough for my purposes, but it's not as good as I'd expected to see.
Snippet from the RSS feed
Lately I’ve been trying to find (and understand) the limits of time syncing between Linux systems. How accurate can you get? What does it take to get that? And what things can easily add measurable amounts of time error? After most of a month (!), I’m sta

You might also wanna read