3

The system time of my Windows Server 2008 server is increasing continuously. In order to adjust the time, I have to shutdown and reset the time.

I have tried changing the CMOS battery, but the problem is still persisting. Since we cannot access the internet on this system, it is not possible to synchronize with an internet time source.

What can I do to fix this, without having to reinstall Windows?

HopelessN00b
  • 53,795
  • 33
  • 135
  • 209
Rakesh R
  • 31
  • 2

3 Answers3

6

You clearly need a more accurate time source for this server.

Since you can't use the internet on this system, your only real option is to install a (or use an existing) time source on the local network. You can set your server to sync from another server on your LAN, which either keeps good time itself, or is synced up to a good time source.

For Server 2008, the instructions on how to configure your NTP settings are here, at KB 816042. Specifically how depends on what type of time source you're using, so I'll leave that up to you to decide, but that link shows you how to do it, and even offers the automatic "fix it" options (though, I personally wouldn't use those on a production server).

HopelessN00b
  • 53,795
  • 33
  • 135
  • 209
2

I'm assuming this isn't a machine in a domain. (If it is, you could probably use w32tm /config /syncfromflags: domhier to sync with the domain controller.)

I suggest you set up an internal NTP server on the OS of your choice and set your misbehaving Windows server to synchronize with that using w32tm /config /manualpeerlist: your.ntp.server /syncfromflags:manual or a similar command.

Katherine Villyard
  • 18,550
  • 4
  • 37
  • 59
2

It would be helpful to know exactly how much the time is drifting. Note that some amount of drift in the server's Real Time Clock is unavoidable. The clock in a PC is not high-precision atomic clock.

A drift of 1-2 seconds per day is common, but it could be as high as ~10 seconds per day. (It depends on the accuracy tolerance of the 32.768KHz crystal used on the motherboard. An accuracy of ±20ppm is typical and equals 1-2sec of drift per day. Cheaper crystals may be in the ±50ppm or ±100ppm range, which equals 5-10sec of drift per day.)

If you are seeing a drift higher than 10 seconds per day, your RTC crystal is probably running at the wrong frequency. That means you have a defective motherboard and it should be replaced. If the system it is still in warranty, contact the manufacturer. Note that if the RTC crystal is running at the wrong frequency, you may see other "strange" issues with the system because any software that depends on the RTC for sleeps/delays will be inaccurate. Until the problem is solved, I would not use this system in production, especially not in a situation where data integrity is important (domain controller, database server, file server).

Even a best-case drift of 1-2 seconds per day can accumulate over time. So, you need to periodically correct the clock. Typically a Windows PC will sync its time over the Internet via NTP. If the machine is joined to a domain, it will sync with its domain controller. Since you do not have Internet access, you will need to periodically correct the time via some other method.

You can do the periodic corrections manually (just edit the time/date in Windows), or you can add some kind of NTP server to your local network to sync against. You can purchase a GPS-based NTP server device for < $1000 USD. There are also NTP server appliances that use WWVB radio, or nearby cellular towers as a time source. You could also cheaply build your own Linux-based GPS NTP server out of a spare PC and a GPS receiver.

Also, since you mention a CMOS battery, I am assuming this is a physical server, not a VM/hypervisor scenario. Note that Virtual Machines are especially prone to clock drift (minutes per day), so syncing with an outside time source becomes very important if you are virtualized. (VM time drift is a topic unto itself.)

myron-semack
  • 2,593
  • 19
  • 17
  • note that a drift of *more* than 10 seconds per day is quite common in virtualized environments due to what hypervisors are doing to timer interrupts. The time simply should be synchronized to a reliable source periodically. – the-wabbit Jun 19 '14 at 15:52
  • @syneticon-dj Hence the last paragraph of my answer :-) – myron-semack Jun 20 '14 at 12:39
  • 1
    Oh, I am sorry, I could have sworn it has not been there when I wrote my comment, but the timestamps say otherwise. – the-wabbit Jun 20 '14 at 12:41