NTP configuration best practices
In order to provide stable time synchronization with low maximum error, follow the NTP configuration best practices listed in this topic.
ntpdatebefore running NTP server. If the offset of the local clock is too far from the true time, it can take a long time before the NTP server synchronizes the local clock, even if it's allowed to perform step adjustments.
- In certain public cloud environments, use the highly-available NTP server accessible via link-local IP address or other dedicated NTP server provided as a service. If your cluster is running in a public cloud environment, consult the cloud provider's documentation for the recommended NTP setup. Both AWS and GCE clouds offer dedicated highly available NTP servers accessible from within a cloud instance via link-local IP address.
- Unless using highly-available NTP reference server accessible via link-local address, always configure at least four time sources for NTP server at the local machine. In addition to providing redundancy in case one of time sources becomes unavailable, this might make the configuration more robust since the NTP is designed to increase its accuracy with a diversity of sources in networks with higher round-trip times and jitter.
- Use the iburst option for faster synchronization at startup. The
iburst option instructs
ntpdto send an initial "burst" of time queries at startup. This results in a faster synchronization of the
ntpdwith its reference servers upon startup.
- If the maximum clock error goes beyond the default threshold set by Kudu (10 seconds),
consider setting lower value for the
maxpolloption for every NTP server in
ntp.conf. For example, consider setting the
maxpollto 7 which will cause the NTP daemon to make requests to the corresponding NTP server at least every 128 seconds. The default maximum poll interval is 10 (1024 seconds).
Following are a few examples of
ntpd configuration files:
# Use my organization's internal NTP server (server in a local network). server ntp1.myorg.internal iburst maxpoll 7 # Add servers from the NTP public pool for redundancy and robustness. server 0.pool.ntp.org iburst maxpoll 8 server 1.pool.ntp.org iburst maxpoll 8 server 2.pool.ntp.org iburst maxpoll 8 server 3.pool.ntp.org iburst maxpoll 8
# AWS case: use dedicated NTP server available via link-local IP address. server 169.254.169.123 iburst
# GCE case: use dedicated NTP server available from within cloud instance. server metadata.google.internal iburst