Frequency Offset and Drift

The system time on a mainboard is derived from a quartz on the mainboard which generates a clock signal which is more or less off its nominal frequency, so the undisciplined system time drifts more or less depending on how much the quartz is off.

This mean native frequency offset depends on the individual quartz, so it varies from one mainboard to the next, even if the board is the same type from the same manufacturer.

In addition, the real frequency offset varies with the ambient temperature of the quartz. The temperature can vary inside the PC housing, depending on whether the CPU is idle or busy, and also depending on variations of the room temperature, e.g. when the air condition kicks in, or due to the daily temperature changes between day and night.

The NTP daemon for example tries to measure the frequency offset and applies a correction to get the real frequency as close as possible to the nominal frequency. The mean drift correction value depends on the native frequency offset of the individual quartz, and the variations over time depend on the stability of the quartz when the temperature changes.

When the quartz frequency changes due to temperature changes then the system time starts to drift, and ntpd needs to adjust the frequency correction to compensate this, so the time offsets and frequency drift are somewhat related.

Here is an example how the drift compensation by ntpd varies over a few days:


Martin Burnicki 2016-09-06 15:12