パスワードを忘れた? アカウント作成
465145 journal

hoagの日記: NTP って adjtimex 方面の調整もやってる?

日記 by hoag

NTP を設定したところ、いつまでも同期が取れない PC があった。時計の狂い方が大きすぎて、 NTP が調整をあきらめているらしい。で、Linux の場合はカーネルにクロックの 調整パラメータがあって、adjtimex コマンドで調整できる事も判った。

調整するときには、tick と frequency の 2 つのパラメータで指定する。frequency は言わば tick の 少数点以下のパートに相当する。まとめて ticks と言う事もある。

正確な tick と frequency の値を求めて、cron でスクリプトを動かしたり、いろいろやって、 まあまあ、満足できる値を得た。この間、NTP は止めていた。

その後、NTP を再起動し、ふと、adjtimex で見てみたら、設定した値と異なっている事に気づいた。

試しに ticks に適当な値を指定して、NTP を動かしてみた。同期しないと何も変わらないが、 同期が取れてから、frequency がだんだんと変化していく。

なので、どうも、NTP は adjtimex のパラメータの調整もやってるみたいだ。

ただ、frequency は変わるのだが、tick の方は変わらないのかもしれない。と、言うか、 今の所(短い観察期間の中では)tick が変わった事が無い。±1 tick の範囲で調整している?  あまり大きな調整はしないって事なのかも。

ちなみに NTP は 4.2.2.p4+dfsg-2 で、これは Debian のパッケージのバージョンになる。

追記(7/8)
その後、tick を変えてテストしていたら、frequency が -12248072 なんて値になってしまった。 tick の値は変わらずに。
frequency は 6553600 が 1 tick に相当するのだから、これは -2 tick に相当する。
結論。NTP は tick は変えない。専ら frequency を調整する。ただし調整幅は、数 tick 分に なる事もある。

NTP を動かす場合の adjtimex パラメータの調整方針は

  1. NTP の同期が取れる程度に、大まかに調整する。adjtimex コマンド自身に計測させる 為に --adjust オプションが使える。
  2. 定期的に frequency の値をチェックし、絶対値が 6553600 より大きくなったら、 tick を 1 だけ調整する。
  3. 定期チェックに戻る

で、良さそうだ。

これで KUROBAKO 方面でのパラメータ調整も簡単になるだろう。スクリプトを 1 時間 とか走らせる必要は無いって事だ。すくなくとも Debian 環境では。

あぁ、そうそう。定期チェック時に /etc/default/adjtimex を更新して置くと良さそうだ。 または shutdown 時に自動で更新とか。

typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...