プロが教えるわが家の防犯対策術!

Linux(Vine 4.1)で、ntpdateとhwclockを使って、毎日時刻あわせをしています。
crontabはこんな感じです。

0 2 * * * /usr/sbin/ntpdate -s ntp1.jst.mfeed.ad.jp
1 2 * * * /sbin/hwclock --systohc

ところが、毎日9700秒以上と、大幅に時計が狂ってしまいます。
syslog出力を抜粋するとこんな感じです。

Nov 28 23:17:22 step time server 210.173.160.27 offset -9757.742092 sec
Nov 29 01:41:39 step time server 210.173.160.27 offset -1099.305344 sec
Nov 29 01:57:54 step time server 210.173.160.27 offset -124.151414 sec
Nov 29 01:59:44 step time server 210.173.160.27 offset -15.801794 sec
Nov 29 23:17:25 tep time server 210.173.160.27 offset -9753.300387 sec
Nov 30 01:41:38 tep time server 210.173.160.27 offset -1101.564751 sec
Nov 30 01:57:56 tep time server 210.173.160.27 offset -124.151818 sec
Nov 30 01:59:47 tep time server 210.173.160.27 offset -13.541277 sec
Nov 30 23:17:23 step time server 210.173.160.27 offset -9757.256311 sec
Dec 1 01:41:38 step time server 210.173.160.27 offset -1102.220379 sec
Dec 1 01:57:56 step time server 210.173.160.27 offset -124.151101 sec
Dec 1 01:59:46 step time server 210.173.160.27 offset -13.544078 sec

adjtimexを使って、ticやfrequencyを変更して対応しようとしたんですが、
adjtimexコマンドの設定範囲を超えているほどのずれのようです。
hwclock --showで確認すると、hardware clockの方はずれていません。

ずれの原因と補正方法が推測できれば、教えていただきたいと思います。
よろしくお願いします。

A 回答 (2件)

adjtimexで調整できるtickは9000-11000(通常10000)で


±1000×8.64秒/日=±8640秒/日の範囲であれば
adjtimexで何とかいけるのではと思いましたが、
24時間で10000秒程ずれるのでは
調整できる範囲ではないですね。

経験したことがない数字なのではっきり言えませんが
拝見していてtickをこぼして遅れているような感じがしました。

・いつ頃から発生しているのでしょうか
 Vine4.1にあげてからとか? 

・LinuxがVMware/VirtualPCの中の仮想ホスト上で動作していることはないですか?
 お使いの環境(マザーボードとか)は?

・kernel2.6.16を使っていると思われますが
 "Losing some ticks... checking if CPU frequency changed."
 というログがsyslogに残っていたりしませんか?

ググるとclockspeedというツールで補正した例も出てきましたが。
根本原因を探ってからお使いになるほうが良いかと思います。
http://quox.org/tips/server/clockspeed.html
    • good
    • 0
この回答へのお礼

回答大変ありがとうございました。

以下、引用させていただいて、情報を追加いたします。

> 経験したことがない数字なのではっきり言えませんが
> 拝見していてtickをこぼして遅れているような感じがしました。

時計は、「遅れている」のではなく、「進んで」います。そして、朝2:00の
ntpdateで一気に9700秒以上遅らせているという状況です。

> ・いつ頃から発生しているのでしょうか
>  Vine4.1にあげてからとか? 

マザーボードを変えてすぐにVine4.1を入れ、それからです。

> ・LinuxがVMware/VirtualPCの中の仮想ホスト上で動作していることはないですか?
>  お使いの環境(マザーボードとか)は?

仮想ホスト上ではありません。

マザーボード: ASUS M2A-VM
CPU: AMD (SocketAM2) Athlon X2 BE-2300 リテールBOX (45W)

という環境です。

> ・kernel2.6.16を使っていると思われますが
> "Losing some ticks... checking if CPU frequency changed."
>  というログがsyslogに残っていたりしませんか?

kernelのversionは、2.6.16-0vl68です。
/var/log/messagesを覗いてみましたが、ログは残っていませんでした。

> ググるとclockspeedというツールで補正した例も出てきましたが。
> 根本原因を探ってからお使いになるほうが良いかと思います。
> http://quox.org/tips/server/clockspeed.html

情報ありがとうございます。マザーボードを変えてからのことなので、ハードの問題なのかなあとも思うのですが、
原因を特定する方法がわからず、悩んでいます。

以上、引き続きよろしくお願いします。

お礼日時:2007/12/03 00:53

たぶん、ntpサーバ指定している、サーバの時刻がずれているのだと思います。

他の、ntpサーバに切り替えた方が良いような気がします。

ちなみに、これを書いている私のパソコンは、プロバイダーの一番近くのntpサーバを指定して時刻あわせをしていますが、ずれていません。

実験してみたところ、NICTやNAISTなんかのサーバはずれていないようです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

説明が不足していたかもしれませんが、ntpdateで時刻同期をかけたときには、時刻はちゃんと合っています。
毎朝2:00に合わせた時点では合っているのに、1日経つと勝手に9700秒ずれてしまう、という状況です。

システムクロックが何らかの影響でずれていっているように思えるのですが、直す方法がわかりません。

引き続きよろしくお願いします。

お礼日時:2007/12/02 22:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!