> 
> 
> The problem for ntp is that ntp takes a long time to recover from a bad
> drift value. 
> 

This seems to have been an issue since I started using ntp, more than 10 years 
ago. I am surprised that it is not fixed.

A simple test on linux with a modern version of ntp:   Here is the normal state 
of this R-PI

Thu Dec  5 09:34:13 CET 2013
mike@raspberrypi ~ $ sudo cat /var/lib/ntp/ntp.drift
-36.772
mike@raspberrypi ~ $ ls -l /var/lib/ntp/ntp.drift
-rw-r--r-- 1 root root 8 Dec  5 08:51 /var/lib/ntp/ntp.drift
mike@raspberrypi ~ $ ntpq  -pn |grep \*
mintc=3, offset=-0.169517, frequency=-37.191, sys_jitter=0.333279,

 offset with this server is  fairly stable at 1-300  microseconds, sometimes 
better.

So now stop ntpd , stick a silly value in the drift file and restart.

root@raspberrypi:/home/mike# echo "-256.666" > /var/lib/ntp/ntp.drift
root@raspberrypi:/home/mike# cat /var/lib/ntp/ntp.drift
-256.666
root@raspberrypi:/home/mike# /etc/init.d/ntp start
Starting NTP server: ntpd.
root@raspberrypi:/home/mike# ntpq -c rv
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd 4.2.7p319@1.2483 Tue May 28 11:26:22 UTC 2013 (2)",
processor="armv6l", system="Linux/3.2.27-pps", leap=00, stratum=2,
precision=-19, rootdelay=14.258, rootdisp=202.121, refid=145.238.203.14,
reftime=d64aba43.dfdbb690  Thu, Dec  5 2013  9:39:31.874,
clock=d64aba54.494fd9c7  Thu, Dec  5 2013  9:39:48.286, peer=2675, tc=6,
mintc=3, offset=3.357234, frequency=-256.666, sys_jitter=1.622350,
clk_jitter=2.342, clk_wander=0.000

So we have picked up the drift and are using it as is, no verification.

root@raspberrypi:/home/mike# ntpq -pn
...
*145.238.203.14  .TS-3.           1 u   44   64    1   14.258    3.357   1.622
...
So iburst got us a reasonable start point. Now lets see how it evolves:

oot@raspberrypi:/home/mike# while true; do date; ntpq -pn |grep \*;ntpq -c rv 
|grep frequency; ls -l /var/lib/ntp/ntp.drift;cat /var/lib/ntp/ntp.drift; sleep 
60; done
Thu Dec  5 09:46:00 CET 2013
*145.238.203.14  .TS-3.           1 u   62   64   77   14.258    3.357  11.413
mintc=3, offset=16.974005, frequency=-256.666, sys_jitter=11.412631,
-rw-r--r-- 1 root root 9 Dec  5 09:38 /var/lib/ntp/ntp.drift
-256.666

three samples later , 

Thu Dec  5 09:49:01 CET 2013
*145.238.203.14  .TS-3.           1 u   39   64  377   14.270   13.392  25.459  
             the offset multiplies by three
mintc=3, offset=16.974005, frequency=-256.666, sys_jitter=25.458613,
-rw-r--r-- 1 root root 9 Dec  5 09:38 /var/lib/ntp/ntp.drift
-256.666
Thu Dec  5 09:50:02 CET 2013
*145.238.203.14  .TS-3.           1 u   32   64  377   14.272   64.913  38.415  
             then more than 20 times
mintc=3, offset=64.912586, frequency=-224.970, sys_jitter=38.415064,
-rw-r--r-- 1 root root 9 Dec  5 09:38 /var/lib/ntp/ntp.drift
-256.666
Thu Dec  5 09:51:02 CET 2013
*145.238.203.14  .TS-3.           1 u   25   64  377   14.272   64.913  34.083
mintc=3, offset=64.912586, frequency=-224.970, sys_jitter=34.083058,
-rw-r--r-- 1 root root 9 Dec  5 09:38 /var/lib/ntp/ntp.drift
-256.666
Thu Dec  5 09:52:02 CET 2013
*145.238.203.14  .TS-3.           1 u   19   64  377   14.242   78.513  37.945  
             and it gets worse  - note that we still think this is a good source
mintc=3, offset=78.512782, frequency=-214.937, sys_jitter=37.944744,
-rw-r--r-- 1 root root 9 Dec  5 09:38 /var/lib/ntp/ntp.drift
-256.666
Thu Dec  5 09:53:03 CET 2013
*145.238.203.14  .TS-3.           1 u   10   64  377   14.242   78.513  30.074
mintc=3, offset=78.512782, frequency=-214.937, sys_jitter=30.073729,
-rw-r--r-- 1 root root 9 Dec  5 09:38 /var/lib/ntp/ntp.drift
-256.666

Our worst state is at 10:03, 30 minutes after the start up.  The real time 
frequency value is decreasing but not reflected to the file. This is an issue 
as an admin blindly restarting ntp after noticing crappy offsets will hit the 
same wall again.

The file gets updated after 1Hr, at 

Thu Dec  5 10:39:21 CET 2013
*145.238.203.14  .TS-3.           1 u   25   64  377   12.834   37.836   8.350
mintc=3, offset=37.835862, frequency=-88.963, sys_jitter=8.349705,
-rw-r--r-- 1 root root 8 Dec  5 10:39 /var/lib/ntp/ntp.drift
-88.963

The rate of convergence is getting quicker but we don't get back to a good 
state until nearly 3Hrs:

Thu Dec  5 12:20:02 CET 2013
*145.238.203.14  .TS-3.           1 u   28   64  377   12.979    0.287   0.693
mintc=3, offset=0.287015, frequency=-38.180, sys_jitter=0.693195,
-rw-r--r-- 1 root root 8 Dec  5 11:39 /var/lib/ntp/ntp.drift
-41.923

And the "normal" drift is reached around 4hrs after the restart.

Thu Dec  5 13:30:30 CET 2013
*145.238.203.14  .TS-3.           1 u   60   64  377   12.882    0.134   0.058
mintc=3, offset=0.134499, frequency=-37.307, sys_jitter=0.057602,
-rw-r--r-- 1 root root 8 Dec  5 12:39 /var/lib/ntp/ntp.drift
-37.928

I am sure that a much faster convergence could be achieved with a little 
thought, even if it meant a little ringing.


_______________________________________________
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions

Reply via email to