Skip to content

ntpd clock slewing / stepping offsets

  • by
> According to www.ntp.org in stanard Linux o.s. (adjtime(2) - http://www.ntp.org/ntpfaq/NTP-s-algo.htm#S-ALGO-BASIC) time adjusting has rate of 0.5ms per second

That's the _maximum_ slew rate. The actual slew rate depends on a number f factors.

> to slew time but because do you speak about "maximum" rate of 0.5 ms/sec. ?

The maximum slew rate is 500ppm; this is the equivalent of half a millisecond per second or 43 seconds per day.

> Does ntpd use always the same 0.5 as value or it's a variable parameter ?

500ppm is the _maximum_ slew rate that most kernels can tolerate. The actual slew rate depends on a number of factors.

> I'm confused because "Rob MacGregor" said about step method (128ms < offset < 1000s) :

1000 seconds == the default panic threshold. ntpd will abort when it sees an offset greater than the panic threshold

128ms == the default step/slew threshold. ntpd will slew offsets below this threhold and will step offsets above this threshold

>Stepping: Time changes in large units, quickly With "Step" method (settimeofday), time is gradually changed with higher rate or time is changes immediately to correct time.

step == reset the clock to the correct time in _one_ instantaneous step.

A stepped clock can "move backwards".

slew == adjust the clock by speeding it up or slowing it down. A slewed clock never "moves backwards"

> example for use step method : my local clock is 5:00 pm and real time is 5:05 pm, Ntpd set immediately local clock to 5:05 pm or it corrects time gradually ?

Slewing the clock to correct a 5 minute offset will take 6.97 days at the maximum 500ppm slew rate.

5 minutes is greater than the default 128ms step/slew threshold. In this case ntpd will _step_ the clock.