title: How good is NTP for distributed time synchronization?
body: <p>How accurate is NTP for keeping a set of servers time synchronized?</p>
  
  <p>I'm writing a service which requires a set of servers (some acting as clients, some as servers) synchronized to second level granularity. I'm wondering if NTP is the best thing to use, or if there's something better?</p>
  
  <p>Should I run a ntp server on one of them, and have the others use that as their source? Any other recommendations/horror stories with NTP?</p>
  
  <p>All the servers are linux.</p>
  
  <p>Update: Service levels:</p>
  
  <p>I'd like the one server to be accurate UTC(second level, not microsecond or such), and I'd like all the other servers to be the same ts as that one server, regardless of whether its accurate UTC or not (events are received by this one server from multiple locations at various intervals, I require all those events to be at the same "relative" ts. No, I can't have the main server TS the events as they come in, because that'll require storing an offset (when the event actually <em>happened</em> and when it was logged, which requires a whole lot of extra work), and that complicates matters needlessly.</p>
  
  <p>I've currently set up one server as stratum 2 timeserver, using some startum 1 GPS sources as servers in ntp.conf, on the other servers, I've set this server to be the sole server in ntp.conf.</p>
  
  <p>I hope this will be enough.
  Thank you!</p>