NTP sync... doesn't
Following the instructions here, I've manually configured the Windows Time service to use an external time source.
As I noticed the server's clock drifts very fast (1s per 40min), I set the SpecialPollInterval
registry parameter to 60sec so that it'll sync often thus neutralizing the drift.
The minute I executed net stop w32time && net start w32time
the error dropped to 8ms and I was happy. Alas no more than 20min have passed and it is back up to 300ms.
How come?
How can I fix this?
Notes:
- It's a VPS
- Windows Server 2008
- Using the following time sync sources: 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org
- Using this to measure the drift
- Measured minute by minute , the drift is almost linear
Solution 1:
I would comment here, but compare your settings to the following server, which I know works. I have to add them as screenshots. I might also consider using the time.windows.com server. It may be farther than the ones you chose, but I have seen issues with other NTP servers. It will still get you close enough time-wise.
Solution 2:
You're running your server in a virtual machine. All bets are off.
Virtual machines can have all sorts of fingers into the timekeeping of your server. What you're possibly witnessing is a fight between the Windows Time Service, trying to keep your machine synchronized with an NTP server out on Internet, and the virtual machine, trying to keep the guest operating system's clock in synchronization with the host operating system's clock. What's very probably causing this fight to be so blatant is that the host operating system's clock isn't set to the correct time. ☺
Details depend from what the virtualization software is, which you don't tell us. Microsoft's general advice for domain controllers, which really applies to any Windows 2008 Server computer and which Ben Armstrong expands upon as do several people on ServerFault (where you should be with server questions, by the way), is to turn off the guest-to-host synchronization and stick to NTP.
Notice that the Windows Time Service has ways of integrating the host operating system's clock as a second "time provider" in some virtual machines. Of course, if the host's clock is off you don't want to sychronize to it. ☺