[time-nuts] NTP and Windows 7
martin.burnicki at burnicki.net
Thu Mar 27 13:42:12 EDT 2014
John Nelson wrote:
> Greetings from Wales. I'm not sure whether this august forum is the
> appropriate place to ask a question about PC timekeeping, but in the hope
> that someone can point me in the right direction I'll ask anyway ;-)
> I have just replaced Windows XP with Windows 7. The PC involved (a fairly
> elderly 2.4GHz Core2 machine) runs an application called 'PlanePlotter'
> which requires accurate timekeeping and mandates Meinberg's NTP software.
> Using the UK pool.ntp.org servers as a reference source this has worked very
> well under XP for several years and the clock was seldom more than a few
> milliseconds out. Under Windows 7, however, the clock can be anything up to
> 0.2s awry and the offset is very erratic. The daily loopstats graph looks
> like a section through a mountain range.
> I have carefully checked all settings and combed the internet for
> suggestions but can see no reason for the sharply degraded performance. Is
> there something about Windows 7 that degrades the performance of NTP? Or is
> there anything subtle I can check?
The latest Windows bug which came to our attention is that some Windows
versions don't apply small time adjustments at all. For example, if NTP
applies an adjustment less than 16 ticks to the Windows time this is
simply ignored by Windows. However, NTP expects the adjustment to have
some effect, but if there is no effect then the next time comparison
yields a much larger difference than expected, and thus causes another
adjustment which is probably larger than necessary. As a summary this
can cause large swings in the time adjustment values.
A developer version of the NTP package contains a workaround for this
Windows bug. The report and fix are discussed here:
NTP Bug 2328 - Vista/Win7 time keeping inaccurate and erratic
The problem is also explained on the Microsoft support page:
SetSystemTimeAdjustment May Lose Adjustments Less than 16
Even though the MS report only mentions Windows 7, the Windows Server
2008 kernel is similar to Windows 7 and has probably the same bug. So if
you want to give it a try you can download a NTP developer version here
which includes a workaround:
(The latest ntp-dev version also contains this fix, so alternatively you
can use that one, as siuggested by David Taylor)
You should try the release version first. Just unzip the ZIP archive,
stop the NTP service, copy all extracted files over the files in your
NTP installation directory (e.g. C:\Program Files (x86)\NTP\bin\), and
restart the NTP service.
We have found that this version has greatly improved the resulting
accuracy on Windows 7 and Windows Server 2008 installations.
Please note under Windows you should configure all upstream servers with
a line reading
server aa.bb.cc.dd iburst minpoll 6 maxpoll 6
where aa.bb.cc.dd has to be replaced with the host name or IP address of
your NTP server.
Generally you should use a polling interval as short as possible under
windows to let let ntpd apply adjustments quickly.
However, please don't use polling intervals below 6 with the developer
version since this prevents the workaround from working correctly as
discussed in the bug report.
Also, higher polling intervals can cause problems under Windows. See:
NTP Bug 2341 - ntpd fails to keep up with clock drift at poll > 7
So our advice is to use "minpoll 6 maxpoll 6" as indicated in the
The patched ntpd has caused no drawbacks on any Windows machines, but
has improved accuracy on a number of installations.
contains also some loopstats graphs as PDF files which show the improvement:
More information about the time-nuts