T.MURACHIの日記: 重い処理で時計がずれる!? 6
日記 by
T.MURACHI
知らなかった。。。
Linux であんまり重たい処理をさせると、時計がずれるだなんて。。。
どおりで、xine でセイントテールの DVD がみたいからって vobcopy 走らせた時に限ってシステム時計が狂うわけだ。。。(ちなみに DVD 一枚で 6 ~ 7 GB 、それを 1 回吸出しするとだいたい 30 分ぐらい時計がずれちゃうみたいです)
今の今までこれに気がつかなくて、マザーボードのボタン電池が切れちゃったのかとか、そもそもマザーボードがダメなのかとか、Linux カーネルにそんなバグでも潜んでるのかとか (んなこたーない) いろいろ調べたりなんだりで余計な時間を潰してしまった。。。自分、まだまだタコっすねぇ(泣
腹減った。。ラーメンでも食いに行こうかしら (;_;)/
鯖管きほんのき (スコア:1)
サーバであればNTP/SNTPは当然でしょうし、クライアントでも便利ですしね。Winodws2000/XPには標準でNTPクライアントが内蔵されていますから結構お手軽にいけますよ。
# といいつつ、設定の仕方を覚えているわけではないので、
# 自宅のPCには設定していなかったりして。
Re:鯖管きほんのき (スコア:1)
NTP は cron 使って一定時間ごとに ntpdate 呼び出すという方法をどこかで見かけました (どこだったかは覚えてないけど、ぐぐれば [google.co.jp]似たようなのは結構すぐ見つかる)。
で、/etc/crontab を書き換えてみてから、そういえば cron も ntp も入れていなかったことに気がついたり(w。Gentoo だからインストールはすぐなんだけどね。
Windows で NTP クライアントは知らんかった。。。こっちもスケジュールとかで設定できるのかな? でもそれをやってしまうと、Windows マシンはテレビ代わりにも使っているのですが、ビデオ録画の開始が 5 ~ 6 秒遅れるから (それを見越していつも 10 秒ぐらい進めた状態をなるべく保つようにしている。。。手動でw)、ちといまいちかなぁ。
しかし vobcopy 走らせながら、KDE の時計モジュールコントロール眺めてて、秒のカウントがあからさまに遅いのにはさすがに苦笑しました。。。(^_^;
むらちより/あい/をこめて。
Re:鯖管きほんのき (スコア:1)
NT系の場合の設定方法については、googleさんに聞いてみる [google.co.jp]と、やり方が出てきます。ネットワーク的に近いNTP
サーバは自分で探してみてください。
# 実は私も知らないだけです (^^;;
UNIX系の場合は…すいません、「鯖管きほんのき」といっておきながら知りません。自宅でSolaris/SPARC使っているのに駄目駄目ですね。
あー、自宅PCが一台あいたらから、またLinuxも使ってみようかな。ディストリビューションは多分Debian/GNU Linuxで。
OSの問題じゃなくて (スコア:1)
詳しいことは忘れましたが、時間の更新は、電源が切れてる時は時計モジュールがやっていて、電源が入っている間はCPU自らがやってるんです。だからCPUが忙しいと時計の更新がおろそかにされてしまう。
多分、昔の技術ではモジュール側で更新している最中にCPU側から「今何時?」って聞かれると恐ろしいことがおこるとか、そういう理由があったのだと思いますが、現代なら複数のI/Oを持つメモリとかモジュールとかもありますから、CPUに頼らない時計モジュールを乗っけても良いように思えるのですが…。
Re:OSの問題じゃなくて (スコア:1)
や、コメントに気づかず返信遅れて申し訳ないです。大変参考になります。
# ていうか、ここしばらく日記サボリ気味だったりするのですが。。。
しかし Linux ではあからさまに発生するこの現象も、Windows で同じようなことをやっても起こらない (ように見える) のは一体何故なんでしょう? やっぱり、OS (あるいはサービス?) がうまいこと帳尻あわせをしてくれている、ということなんでしょうか?
もしそうなのだとしたら、同じような帳尻あわせをしてくれるデーモンか何かが Linux にも存在すればよいのですが。。。
むらちより/あい/をこめて。
コンピュータの時計 (スコア:1)
私も日記へのコメントを見落とすこともありますので、メッセージング [srad.jp]で日記へのコメントも通知してくれるとありがたいのですが…
Linuxのほうが時計のズレは大きいですね。以前にLinuxとWindowsの混在環境でシステムを運用していましたが、数ヶ月に一度のメンテナンスで時刻を手動で補正する時に、Linuxのほうが大きくズレていました。
内部的なハナシですが「割り込み禁止状態」という時間帯がWindowsに比べて長いのだと思います。
「割り込み禁止状態」は、新たなI/O処理を行いたくない場合に使用します。例えば、とにかく急ぐ処理を行う場合や、I/Oの処理を多重に行えない、またはそれを中断できない場合などです。
時計の更新も、定期的な「タイマー割り込み」によって行われるので「割り込み禁止」状態では、当然行えません。
帳尻を合わせるのは、外部の時計を頼るしかないと思います。
コンピュータ単体で考えた場合、時刻はコンピュータ内部の時計でしかわかりません。LinuxでもWindowsでもこれは同じです。1時間で1分しか時計が進まなくても、コンピュータにしてみればたったの1分でしかないです。すごく充実した1分間だとは思いますが。
UNIX系のOSでは、xntpdというパッケージを使うのが現在の主流です。
自分が時刻サーバになることも出来ます。
その場合は、より正確な時刻を供給しなければならないので、外部に時刻を問い合わせて、常に正確な時刻を保ちます。
# 外部とは言っても自分自身を“外部”とすることができますが
正確な時刻を供給している外部のサーバとしては、こちら [mfeed.ad.jp]が使用可能です。