Apple Time

by Erica Sadun

New Years is just a few days away, so I thought I'd take a little time to learn more about Apple Time. Your Mac always knows what time it is because it uses one of Apple's custom NTP servers. NTP, which stands for Network Time Protocol, provides a way for clocks to synchronize even when faced with variable latency data networks. It was developed back in the 1980's at the University of Delaware.

In System Preferences' Date & Time settings, you can selet one of three Apple NTP servers: time.apple.com, time.asia.apple.com, or time.euro.apple.com. Select the one that bests describes your geographic location. Your computer will contact the server on a regular basis to resynchronize your system.

The polling frequency of your clock is set in /private/etc/ntp.conf, where it typically checks for accuracy about every hour. The ntp.conf file, which is used by the NTP daemon (ntpd, ps -ax | grep ntpd), sets a minimum polling and a maximum polling interval. These represent seconds to the power of two. So the (Apple) standard minimum polling interval of 12 is 4096 seconds, or about 68 minutes. The maximum polling interval of 17 is more like a day and a half.

Sometimes despite everything, you may lose sync to network time. Apple has a support how-to posted that walks you through updating your ntp.conf file to deal with this.

Finally, I stumbled across this interesting NTP hack, which allows users without system administrator privileges to access a second time server. Nifty.

3 Comments

Randal L. Schwartz
2006-12-29 12:31:04

You can also use "pool.ntp.org" (http://en.wikipedia.org/wiki/NTP_pool) in your configuration, which is guaranteed to be a diverse collection of entire-earth-located servers that are available for public slaving. That's the first thing I set up on a new computer.

Roger Weeks
2006-12-29 14:05:14

The first thing you should do is change your NTP server to something like pool.ntp.org as Randal suggested. Why this isn't the default on Apple machines I have no idea, as it is the default with every other NTP install on Linux, BSD, etc.

However, if you're in any sort of corporate environment with other *nix/BSD machines, you will have a local NTP server, which you should use in precedence over any other NTP server.