僕が管理を引き継いだシステムでNTPデーモンが停止する事象が半年で3回くらい発生しました。

ログを見てみると、
"
dd MMM HH:DD:SS ntpd[xxxx]: frequency error -503 PPM exceeds tolerance 500PPM
dd MMM HH:DD:SS ntpd[xxxx]: kernel time sync desabled 0001
dd MMM HH:DD:SS ntpd[xxxx]: time correction of 30 seconds exceeds sanity limit (30); set clock manually to the correct UTC time.
"
と出ていた。最終的には時刻サーバーとの時刻差が30秒に達し、設定値を超えたので終了しますというメッセージです。

ntp.confを確認すると
"
tinker panic 30 step 30
restrict default ignore
restrict 127.0.0.1
restrict 123.456.789.098
server 123.456.789.098 minpoll 9 maxpoll 10
fudge 127.127.0.0 stratum 12
driftfile /var/lib/ntp/drift
"
という設定になっていた。上から意味を書いていくと

時刻サーバーとのずれが30秒になったらデーモンを停止します。また、時刻サーバーとのずれが30秒になったら時刻を一気に修正します。
どのサーバーとの通信も拒否します。
127.0.0.1との通信は許可します(127.0.0.1はローカルホスト)。
123.456.789.098との通信も許可します。
123.456.789.098を時刻サーバーとします。時刻確認は512秒か1024秒です。
時刻サーバーにつながらないときには127.127.0.0をstratum 12の時刻サーバーとして時刻調整をします。
driftfileは/var/lib/ntp/driftにあります。


まず、1行目があり得なかった。30秒ずれると落ちるのに30秒ずれないと時刻をあわてて直さない設定なのです(ここで疑問なのは30秒もずれるのか)。

ntp.confの書き方。
"tinker panic"は時刻サーバーとのずれが設定した秒数を超えるとデーモンが停止するということ。0に設定するとずれ幅の如何に関わらず、デーモンは停止しない。
"tinker step"は時刻サーバーとのずれが設定した秒数を超えると一気に時刻を修正する。設定をしないと128ミリ秒以上ずれると一気に修正する。通常の時刻調整は1秒に0.5ミリ秒となっている(が、実際には数ミリ秒)。

RHEL3/4で確認