Buffalo LS-GLでLinuxbox(7)

NTPがさっくりと入ったような気がしたんだけど、どうも安定して動かない。起動してしばらくするとNTPサーバに同期するんだけど、小一時間して様子を伺うとntpdが落ちている。psしてもプロセスが存在しない。どうもシステムクロックの精度が悪くて落ちてるっぽい。こういうところは不親切だよな~、ntpdは。

と、嘆いているだけでは埒があかないので、玄箱時代に同じようなことがあったことを思い出してゴソゴソと調べてみた。どうもntpdは±8.64秒/日以下の精度がないとちゃんと動かなさそうなことが書いてあった。そして、玄箱時代もシステムクロックの精度の悪さに対応するためにadjtimexを使ったっけ、と昔を懐かしながらipkgにadjtimexを探したけどなかった。もう少し探してみたら ntpclient に含まれているようだ。# ipkg install ntpclientでさくっと adjtimexは入ったけど、使い方が分からない。。。 ウェブにあるadjtimexのmanページを見てもあるはずのオプションがないから、普通のものよりもちょっと特殊なものが入っているよう。

以前は確かこの方法でadjtimexを使ったと思うけどこのスクリプトはLinkStation+Optwareには使えなさそう。そこで、# adjtimexを実行すると表示される情報を元に試行錯誤をしてみた。方法はSlashdotの記事を参考に、# adjtimex -t x -f 0のx(tickと呼ばれる値で、デフォルトは10000)をntpq -pで表示されるoffsetの値を元に増減させる。offsetがプラスに大きくなってきたら10001、10002と大きくしていく。逆にマイナスに大きくなってきたらtickを少なくする。

Linuxがどのようにシステムクロックを管理しているか深く理解していないけど、10000 tickを基準に±1000 tickの範囲で粗く調整し、1 tick=6553600 frequencyでさらに細かく調整できるよう。で、ntpdはfrequencyは調整してくれるみたいだけど、tickは手動で設定するみたい。# ntpq -p
# adjtimex
を繰り返してntpqのoffsetとadjtimexのfrequencyに注目する。adjtimexのfrequencyの絶対値が6553600を超えたら、tickを調整する。6553600以上になったらtickを1増やして# adjtimex -t tick+1 -f 0とfrequencyをリセットする。

いまのところtick=10007、frequency=5651930あたりで落ち着いてる。これで様子を見よう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です