ntpdのfrequency error ? PPM exceeds tolerance ? PPMが出たらまず試したいこと。
先日突然/var/log/messagesに
ntpd[xxxx]: frequency error 1028 PPM exceeds tolerance 500 PPM
みたいな感じのメッセージが出力されるようになったときの対応メモ。
そもそもこのメッセージの意味は?
ntpd[xxxx]: frequency error 1028 PPM exceeds tolerance 500 PPM
行頭から順番に見ていこう。
ntpdとあるので、どうやら時刻合わせのデーモンに何事かあったらしい。
frequency errorとあるので、「周波数誤差」があるよということらしい。
frequency errorの意味 - 英和辞典 Weblio辞書exceeds toleranceとあるので、「許容誤差」を超えているぞこら!ということらしい。
toleranceの意味 - 英和辞典 Weblio辞書
……たしかに、1028PPMは、500PPMより大きい値だ。
かわいらしく表現すると、
正確な時刻を刻んであげようと日々陰ながら努力して情報収集しているntpdくんが言うことには、ちょっとずれてるけどまぁ許してやろうの範囲を超えるような誤差が起こってしまって、もーどうしたもんかと困っているよ。
ということなのでしょう。
実際、サーバーの時刻を表示させてみたら、
$ date
Fri Nov 13 19:30:30 JST 2015
という具合に表示されるわけですが、これが実際にコマンドを実行したときの時刻とだいぶずれてました。サーバーの時刻がずれているというのは、何か障害があったときにログを漁るときに面倒なので、困るわけです。
エラーが出たらとりあえず、エラーメッセージをコピペしてググれ!
ネット上にいる素晴らしい先人たちが、同じようなエラーに取り組んでいることが多いので、エラーメッセージがあれば とりあえずそのままコピペしてググれば解決策をGoogle先生が教えてくれるといいます。
常にエラーが出ているパターンとか、内部クロックがいまいちな場合の対応とかが結構ヒットしたのですが、今回は、一時的に出ているエラーっぽいということで、
これが、状況的には似ていていいなと思ったのですが…。
/var/lib/ntp/driftファイルを削除またはリネームする。
# mv /var/lib/ntp/drift /var/lib/ntp/drift.back
ってのがちょっとファイル操作するまでじゃないよなぁとか、「削除」って結構思い切りがいるからちょっとまだやだなという気持ちになったので、別をあたることにしました。
私的ベストアンサー!
最終的には、こちらのページの対応を使わせてもらいました。
コマンドメモ
$ service ntpd stop <-- まずntpdを停止する。
$ ntpd -qg <-- 設定ファイルにある許容誤差を無視して時刻合わせをする
$ service ntpd start <-- ntpdを再開する。
$ ntpq -p <-- 一応稼働状況確認してみる。
稼働状況の確認は、ntpdが動作し始めてすぐはまだ同期が始まってないだろうので、直後と少ししてからの複数回やっとくと変化がわかってよさげ。