[ntp:questions] NTP vs chrony comparison (Was: oscillations in ntp clock synchronization)
david at ex.djwhome.demon.co.uk.invalid
Tue Jan 22 23:08:56 UTC 2008
David L. Mills wrote:
> As for "offset should be much larger than the error", be careful here.
> By error I assume you mean what ntpq rv shows as jitter. The best case
No. By error I meant a measurement that neither ntpd nor chrony can
actually make, namely the difference between the user's concept of
perfect time and the actual time in the software clock in the client. If
you could actually measure it, you would probably characterize it by the
root mean square of this.
What actually happens is that, say you have a server, that you define as
perfect time, you desperately want a measure of how accurate your client
is compared with the server's internal time. People seize on offset as
a measure of that, but, if the loop is well locked, which I think
amounts to jitter and RMS offset being essentially the same, offset is
almost entirely made up of measurement error. In reality the client's
software clock may well be in almost perfect synchronization with the
server's and certainly should have an RMS difference that is much less
than deduced from offset/jitter. (Systematic errors may result in a
systematic offset, so one is really talking about a jitter-like measure,
relative to the, unavailable, perfect time.)
The measurement cannot be made using ntpd or chrony alone, because if
they could measure the true error, they could correct for it.
> is when offset is indeed less than jitter; if the error is much larger
> than error, this suggests the frequency has surged and the time
I think you meant the first error to be offset and the second one to be
jitter. I would consider this case to be one where the loop was not
> constant/poll interval needs to be reduced. Watch the poll interval
> behavior in the loopstats data.
I think you really need to address two issues to put this thread to
- the use of linear regression algorithms on finite histories, as an
alternative to the ntpd algorithm (i.e. the statisticians/scientists
approach, versus the engineer's);
- the handling of cases where it is obvious to a human that the time
is wrong, but ntpd will take 3000+s to fully correct.
chrony uses linear regression (modified least squares) and it seems to
be getting a reputation for recovering from transients much better than
ntpd. Unruh believes that this is the consequence of the algorithm that
it uses, which means that least squares type techniques are beginning to
be associated with the way to go with time synchronization. I know you
disagree, but you have to convince people of that when chrony seems to
behave much better in the transients seen in real uses of ntpd.
I wonder if what is really needed is to use linear regression to gain
and regain lock and to use the current ntpd algorithm when you are
reasonably convinced that the loop is locked. At the moment, you do a
two point linear regression on a cold start, or after a step, although
two point least squares fits are rather trivial as they always have zero
variance if the points are distinct!
My understanding of chrony, based on high level documents and a quick
skim of the code is that:
- it is not NTP compliant because it doesn't seem to implement
normative parts of the NTPv3 specification, like the intersection
algorithm (but many people don't distinguish between SNTP and NTP
because they use the same wire formats);
- the way it works is to maintain a finite history of measurements
and to use linear regression (least squares modified to give less
weight to outliers) and to calculate a phase and frequency error.
It applies the phase correction as a fast slew, which is seen as an
an advantage, because only a fixed frequency correction is left if the
server goes away) and the frequency correction continuously.
Once it has applied a correction, it adjusts the historic measurements
to account for its current time and frequency scales.
I think there is more to it than this, e.g. adjusting sample rates
and the number of retained samples.
Because it is significantly different in principle from ntpd, it is not
entirely clear that ntpd concepts like loop time constants are explicit
in the chrony model, although they might be implicit in things like the
period over which samples are currently being retained.
A problem that Unruh is having is that some of the answers he is getting
seem to represent blind faith in ntpd without any knowledge of
More information about the questions