Anders Wallin recently discussed generating graphs of server time error using a timestamp from the Date: header of an http request.
NTP servers themselves have estimates of time error, and it's possible to get the local server's idea of the error by sending SNTP packets to the local machine. You can also see the last time this NTP server successfully communicated with a peer or upstream, and see whether the server considers itself desynchronized by checking the stratum and leap second fields.
Based on my tinkering, the root_dispersion field or the derived LAMBDA value is the easiest to look at for estimating how bad the NTP time is. Between communications with a peer, root_dispersion and LAMBA increase at a rate of 15µs/s, ntp's arbitrary estimate of the accuracy of the local undisciplined clock. (YMMV and you can appaerntly tweak CLOCK_PHI in your NTP configuration file)
The attached program is a basic Python SNTP client which by default polls the local server every 5 seconds and prints some information. License: GPLv2+
Typical output:
12:25:58 0.06233 228.95875 ST-SYNCH LI-SYNCH 12:26:03 0.06241 233.96404 ST-SYNCH LI-SYNCH 12:26:08 0.06247 238.96745 ST-SYNCH LI-SYNCH 12:26:13 0.06255 243.97141 ST-SYNCH LI-SYNCH 12:26:18 0.06262 248.97673 ST-SYNCH LI-SYNCH 12:26:23 0.06270 253.98213 ST-SYNCH LI-SYNCH 12:26:28 0.06277 258.98746 ST-SYNCH LI-SYNCH
Files currently attached to this page:
ntpsynch.py | 4.9kB |
Entry first conceived on 23 November 2013, 18:19 UTC, last modified on 27 January 2014, 18:03 UTC
Website Copyright © 2004-2024 Jeff Epler