すぐに起動すると、再$ ntpq -p
起動後にシステムクロックが最大600ミリ秒まで遅くなることがわかります。
正しいNTP時間に収束するのに時間がかかるので、私たちのユースケースでは少し迷惑です。 (Cephモニター、時間に敏感です)。その後、再起動すると、時計の傾きが再び表示されます。
再起動後にこれが発生しますか? PCのRTCが間違っていますか?
調査するために私がしたこと:
- いくつかの(非常に似ていますが)サーバー(HP dl360 gen9)で確認しました。しかし、2009年の古いホワイトラベルデスクトップも同様です。
- 集計されたNTP時間をRTCに保存し、RTCからシステムクロックにコピーします。約10ミリ秒程度の偏差しか見られません。素直にすることもできますが、これは基本的にシステム時間の点で再起動を模倣します。
- 再起動する前に明示的にRTCに保存してください。
- kexec-rebootを使用してください。それでも発生します。
- これまでは、Ubuntu 16.04でのみテストされました。
ベストアンサー1
RTCは秒数だけ保存する可能性が高いため(カーネルがいつ1秒から次の秒に切り替えるかわからない限り)、デフォルトでは1/2秒、つまり500ミリ秒オフになります。 RTCに時間を保存する場合も同様です。カーネルが1秒のティックの発生を制御できない場合、保存は最大500ミリ秒まで遅れることがあります。
確実な解決策は、NTPに問題をすばやく修正できるようにすることです。 ntpdを使用して-g
(またはより強力に-G
)起動すると、起動時に時計を段階的に変更することが許可(または強制)されます。 /ラインiburst
と一緒に使用すると、約10秒以内に正確な時計を提供する必要があります。server
pool
たとえば、ntp-wait
NTP が準備されるまで時間に敏感なワークロードを開始しないようにすることができます。