About

The author

This site and the various components that collect, analyze and present the data on it were developed by Frank Wayne, an IT professional working and residing in the Chicago area.

The grading formula

Four characteristics of a time server are considered when determining a score: the clock offset, the clock jitter, the standard deviation of the round-trip delay, and the availability of the server.

The clock offset is the server's accuracy and is perhaps the most obvious criterion for a good clock. An offset of zero is ideal and scores decline as offsets approach ±128 ms. Higher offsets indicate invalid clocks.

Jitter measures the stability of the clock, specifically the RMS of the variability. Similar to the offset range, a jitter of 128 ms is considered unaccepable.

Round-trip delay is determined by distance and the nature of the network connection to the server. Good synchronization is possible even when RTD is high, albeit within a wider confidence interval, as long as there is good round-trip symmetry. However, variability of round-trip delay, measured by the standard deviation of the round-trip delay, is a sign of intermittant network congestion or other unfavorable conditions. An upper limit of 83.3 ms is used to score this criterion.

Finally, the availability of the server is essential to its usefulness. Scores are based on the proportion of queries that return responses.

To provide a curved grade, the square root of the product of the sub-scores is used as the aggregate score, expressed as a percentage.

Score Formula

θ is clock offset; φ is jitter; sδ is the sample standard deviation of the round-trip delay; n is the number of responses; R is the number of queries sent to the server.

Data collection

Monitoring is performed by an array of Raspberry Pi (Raspbian Linux) servers running the NTP reference implementation. A seperate server gleans NTP pool IPs from DNS every few minutes and maintains a database of server availability based on DNS resolution only. Once a day, an updated list of pool servers is pushed to the Raspberry Pis.

The NTP statistics data is sent from each Raspberry Pi to a Splunk indexer. All analysis is performed using Splunk. Results are pushed by Splunk to the web server that renders the relevant pages.

The polling interval on the monitoring servers is fixed at 1024 seconds to minimize impact on services.

All monitoring is done using a residential broadband Internet connection in Prospect Heights, Illinois, and is subject to the vicissitudes of local and wide-area network conditions.

The local time servers

Three primary time servers with discrete satellite receivers are co-located on the same subnet as the monitoring servers, which use them to synchronize their clocks. The primary time servers are generally within 100 μs of their reference clocks (and often much closer.) The clock offset between each monitor server and these primaries is tracked and the offsets of remote time sources are adjusted during analysis.