[ntp:questions] NTP Bug 2328 - Vista/Win7 time keeping inaccurate and erratic
martin.burnicki at meinberg.de
Tue Nov 26 16:20:25 UTC 2013
David Taylor wrote:
> Just for interest, following your remark about smaller polling
> intervals, I changed three PCs on my working system from:
> server aa.bb.cc.dd iburst minpoll 5 maxpoll 5
> server aa.bb.cc.dd iburst minpoll 6 maxpoll 6
> and in all cases the performance was no better when measuring the offset
> or the jitter. All PCs synced to several stratum-1 servers (one
> FreeBSD, three Windows), and all using NTP development version 4.2.7p398.
I know all this is pretty tricky.
The workaround submitted in bug 2328 is to yield more accuracy under
Windows Vista and newer only, and ntpd checks at runtime if it is
running under a Windows version requiring the workaround, or not.
For example, if running under Win XP the workaround is not enabled
anyway since the underlying Windows problem doesn't exist, and thus the
time discipline works in the same way as without the workaround.
I've seen installations with Windows 7 where the Windows problem didn't
seem to happen, and even ntpd 4.2.6p5 (without the workaround) was able
to discipline the Windows time as expected.
On the other hand, in all installations of Win Vista and newer where the
time adjustment loop didn't settle properly the workaround has
significantly increased the resulting accuracy.
I've put an example graph here:
This has been recorded on a Win 7 system, where the system time is
disciplined by NTP from a single upstream server running Linux. The time
quality has been measured against a GPS PCI card built into the windows
In the first part of the graph ntpd 4.2.6p5 has been running. The tick
adjustment values only change in small steps, but the disciplined
Windows time has large offset and jitter.
Then the ntpd binary has been replaced by a version which includes the
workaround. As can be seen, adjustments are now applied in larger steps,
but the disciplined system time is very much smoother than before.
The guy who has submitted the code for the workaround said his changes
don't work as expected if the polling interval is smaller than 6. Since
everything else works like he described I also believe this is true, but
I haven't tested smaller poll intervals with the patch.
More information about the questions