プロが教える店舗&オフィスのセキュリティ対策術

今のパソコンを使い始めて3年ほどですが、最近気がつくと時刻がひどくずれていることがあります。
今まではNTPサーバーと1日1回程度同期していましたが、その設定にもかかわらず、6分近くずれていたことがあり、さすがに不正確なパソコンの時計だとしても、これはおかしいのでは思うようになりました。
w32tm /stripchart /computer:ntp.nict.jp /period:120
を実行してどれくらいズレているのかを計ってみたのですが、結果は13分で17秒ズレているという状態です。(結果は下にコピペしてあります)

これは問題のない範囲なのでしょうか。それとも故障を考えるべきでしょうか?
今のところ、ルーターに内蔵されたNTPサーバーと10分に1回同期するように設定して、とりあえず問題はない範囲ですが…。

Windows7 Professional x64
マザーボード Gigabyte GA-P35-DS3R

w32tm /stripchart /computer:ntp.nict.jp /period:120 の結果(スペースが削除されてしまうようですね…見にくくてすいません)
07:29:07 d:+00.0155992s o:-00.0275265s [ * ]
07:31:07 d:+00.0155992s o:-00.0253338s [ * ]
07:33:07 d:+00.0155992s o:-00.0346852s [ * ]
07:35:07 d:+00.0155992s o:-00.0302326s [ * ]
07:37:07 d:+00.0212492s o:+00.0011277s [ * ]
07:39:08 d:+00.0155992s o:+03.0893626s [ | * ]
07:41:08 d:+00.0249992s o:+03.4091544s [ | * ]
07:43:08 d:+00.0155992s o:+03.4096856s [ | * ]
07:45:08 d:+00.0155992s o:+04.3222353s [ | * ]
07:47:08 d:+00.0224992s o:+08.3746913s [ | * ]
07:49:08 d:+00.0249992s o:+12.9097869s [ | @]
07:51:08 d:+00.0237492s o:+17.2215513s [ | @]
07:53:08 d:+00.0224992s o:+18.1022300s [ | @]
07:55:08 d:+00.0237492s o:+18.8775789s [ | @]
07:57:08 d:+00.0237492s o:+19.3634255s [ | @]
07:59:08 d:+00.0155992s o:+19.7126728s [ | @]
08:01:08 d:+00.0155992s o:+19.7146450s [ | @]

A 回答 (5件)

まず、Windows 動作中の時刻のずれということですね。


この場合、電池の消耗やCMOSの時計といった問題とは無関係です。

時刻のずれは、13分で17秒、30分で20秒程度で、これは大きすぎると思います。
精度はこんな感じですね。
17/(13*60)*1,000,000= 21,795 ppm
20/(30*60)*1,000,000= 11,111 ppm
ちなみに、1ヶ月で30秒くるう時計の精度は
30/(60*60*24*30)*1,000,000 = 12 ppm

ちょっとどころではなく大きいですね。(1ppm の精度は 100万秒で1秒ずれる精度です)
私の感覚では、Windows動作中の時計の精度は1日あたりせいぜい20~30秒(300ppmく
らい)が限度だと思っています。

理解している人は少ないのですが、WindowsはOSが起動してからは、タイマー割り込
みという機能でOSが時刻をカウントしています。
タイマー割り込みに使用されるクロックは、マザーボード内部のシステムを制御する
クロックです。このクロックの精度が狂うと Windows中の時刻のずれが生じやすくな
ります。
クロックの精度がくるう可能性があるのは、オーバクロック、ハード(IRQ, APIC,
HPET)とWindowsの設定が不整合の場合などが考えられます。
また、割り込みなので、割り込みの取りこぼしなどが発生する可能性があります。

Windows動作中に進む場合
=> 割り込みが何らかの影響で速くなっている。

Windows動作中に遅れる場合
=> 割り込みが何らかの影響で遅くなっている。または、割り込みを取りこぼしている。

この様な可能性があります。

fs71さんの場合、時刻が進み、64bit Windowsを使用しているので、以下の可能性が
あると思います。

・オーバークロックの設定をしている
=> BIOSの設定で何らかの設定をしているならば、すべて標準設定にすべきです。
とはいえ、出された時刻の進みかたを見ると、特定の2分間隔で4秒以上進んだ
り、ほとんど進まなかったりがあるので、この可能性は少ないかもしれません。

・APIC,HPET の設定がおかしい
=> BIOSのPower Management Setupにある HPET Support, HPET Mode の設定は適切
ですか?(GA-P35-DS3Rのマニュアルより)
Windows 7 64bit版を使用されているので、おそらく、HPET Support: Enable,
HPET Mode: 64bit の設定が適切ではないかと思います。
もしかすると、この設定をしたあとOSのクリーンインストールを行わないと
HPETの設定がOSに反映されないかもしれません。

・特定の間隔で負荷が変動するような環境にある
まあ、現象としては突然軽くなったりアニメーションが速くなったり、逆に重く
なったり遅くなったり、むらがある動作です。
あまり根拠はないのですが、特定の2分間隔で4秒ものずれが生じているのでそのよ
うに考えました。この問題であった場合、原因を特定したり改修したりするのは
難しいです。

上の3つのうち、始めの2つを試してみて改善したらラッキー程度と思って試してく
ださい。

また、電源が切れているときの精度、CMOSの時刻の精度は問題ないんですよね?
この確認は、BIOSメニューのStandard CMOS Featuresの時刻を見て確認します。
数十分間、表示させたまま放置したり、電源を切ってみてどれだけずれが生じるか、
一応確認すべきだと思います。

以下蛇足です。

マザーボードは 一般的にCMOSと呼ばれる領域に年月を含む時刻をカウントしています。
BIOS セットアップメニューなどで見える時刻がそれです。カウントは1秒単位です。
このカウントは電池でバックアップされており、マザーボード単品になってもカウン
トされ続けます。
また、電池の消耗を抑えるために、AC 100V電源が供給されていたり、普通にマザー
ボードの電源が入っているときは、別の電源から供給します。
この電源の名前は慣例的に VBAT と名づけられる場合が多いです。

VBAT の電位は3.3Vに設計されていると思いますので、fs71さんのボードには問題な
いと思います。

また、VBATの電源の元は、電池と 5V_SB(AC 100Vの電源が供給されつづける限り 5Vを
供給しつづけます。5V StandBy の意味です)を 3.3V 程度に落とした電源です。

なお、5V_SBの電源がイカれているならば、マザーボードの電源は入りません(笑)。
たとえ入っても、再起動やら電源が切れたりの動作が頻発するはずです(多分)。


マザーボードの電源を入れ、OS(DOS,Windows,Linuxなど)が起動すると、機動中に
CMOS の領域の時刻情報を読み、それ以降、割り込みにてOS内部で時刻をカウントし
ます。OS上で見える時刻は、この時刻です。
サスペンドや休止状態からの復帰時も同様な動作をします。
割り込み間隔は 1/100秒単位です。CMOSの時刻のカウントが1秒単位なのに、OS上で1
秒以下の時刻の観測ができるのはこのためです。
しかし、所詮割り込みなので、クロックの精度やシステム不可の状態で狂う場合があ
ります。

Windows Vistaの場合、Windowsの終了時などに、OSでカウントした時刻をCMOSの領域
に書き込む作業をします。この動作は QFEやSPなどで直ると思います。
Windows 7の場合はよく知りません。ごめんなさい。


CMOSの時刻のカウントの精度は、大きければ±数分/月程度出ます。
クロックの元となる水晶は、腕時計などで広く使われているものと同じですが、マ
ザーボードの温度環境が非常に上下しますので、狂いやすいです。
また設計その物が良くない場合もあります。

この手の質問では、脊髄反射的に、CMOSバックアップ用の電池とインターネットの時
刻合わせしか回答が出ないので、ちょっと毛色の変わった回答をしてみました。

この回答への補足

> また、電源が切れているときの精度、CMOSの時刻の精度は問題ないんですよね?
> この確認は、BIOSメニューのStandard CMOS Featuresの時刻を見て確認します。
すいません、この件ですが、半分サーバーのように使っているため、再起動くらいは問題ないのですが、すぐにはテストできない状態です。

テストできましたらどれかの質問で補足したいと思います。

補足日時:2009/12/06 15:44
    • good
    • 1
この回答へのお礼

大変参考になる情報興味深く拝見しました。
Windows起動時もBIOSのようなプログラムで時間は刻まれているのかなと思っていたので、、全く知りませんでした。

> オーバークロックの設定をしている
オーバークロックの類はしていません。
メモリ・CPU・グラフィックボードなど全てデフォルトです。

> APIC,HPET の設定がおかしい
少し前に事情がありBIOSをデフォルトの設定に戻し再設定したので、ひょっとして32Bitのままかも、と思いましたので見てきましたが、HPETは無事64Bitになっていました。
APCIというのはお恥ずかしながら初めて聞きました。(ACPIなら知っていますが(汗))
http://ja.wikipedia.org/wiki/APIC
これですね、うーん、BIOSやデバイスマネージャーなどで何か確認できるのかもしれませんが、どこを確認すればいいのか私の知識と検索した結果ではよく分かりませんでした。

> 特定の間隔で負荷が変動するような環境にある
これはあるかもしれません。昼間はないのですが、深夜電力の時間帯にBOINCに参加しており、23時~翌日7時まではCPUが相当稼働します。
しかし、その時間帯に使うこともあるので、操作が1秒以上無い場合に稼働するようになっています。つまり操作をたまにすると、負荷が急激に変化します。
本来100%占有するわけではないので、連続動作させてもWindowsの機能や操作は維持されますが、多少動作が重くなるので止めるようにしているわけですが…。

でも昼間にもずれてますので、やはり関係ないかな。

> CMOSの時刻のカウントの精度は、大きければ±数分/月程度出ます。
1週間で数十分ずれた、というようなことはありそうだなと思うのですが、1日で10分くらいずれていたりするのを見ると、これはどうなんだろうと、質問した次第です。

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

お礼日時:2009/12/06 15:42

No.3 です。

問題を解決する時に、原因と結果を簡単に結びつけずに、
原因あるいは原因と思われる事象と結果を、段階を追って辿っていくのが正しいエンジニアリングと思います。No.4 の方のご説明は順を追って展開されており、感心いたしました。
文が長くなりすぎるので、省略をされたのだと思いますが、例えば、
<<WindowsはOSが起動してからは、タイマー割り込みという機能でOSが時刻をカウントしています。>>
の部分をもう少し、だれでも知っている日本語で解説していただくと理解出来る人間の数が増えると思います。(私も含めて)
また、OSが止まっている間は時計はどうなっているのでしょうか。

この回答への補足

テスト結果を補足する場所がないため、こちらをお借りします。

BIOSを起動させた状態で時刻がずれるかテストしました。
17:02に誤差範囲で開始、翌 03:42 確認したところ、同じ誤差範囲でした。
気持ち早いような気はしますが、どちらにしろ差は1秒以下です。

比較にはauの携帯電話を使っています。基地局がGPSで時刻同期しているはずなので、ズレはほとんどないはず。

結論としては、BIOSの状態だと、ずれない、ということのようです。
これはもしかしてWindows7の問題、なのでしょうか。

補足日時:2009/12/07 04:49
    • good
    • 0

私のコンピュータは一日に 0,59 秒進む傾向があります。


富士通製デスクトップ、9年前に買いました。

これを自動的に修正するのに「ぴったりでチュウー」という小さなソフトを常駐させています。シェアウェアで630円でした。
http://homepage1.nifty.com/ikehouse/softlib/ntpt …
WindowsXP までには対応しています。私はVista, 7 は知りません。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
Windows2000/XP/Vista/7には、OS標準で(S)NTPサーバーと時間あわせする機能があるのでそれを使っています。
使っているのにずれるので困っていたわけですが…。

今はとりあえずNTPサーバー機能のあるルーターに3分に1回時刻合わせをするようにし5秒程度の誤差になっています。
以前はこんなにひどくなかったはずなんですけどね…。

お礼日時:2009/12/06 10:23

>マザーボードの時計は、電源を入れている時でも電池に影響されているのですね。



あらら
通常、電源が入っているときは電源からの供給で動作します
また、パワーオフでも100Vラインが生きていれば5VSUBで動作します
電池で動作するのは100Vラインが死んでる時です
電源が入っている状態で時計が大きく狂うのはあきらかに異常です
5VSUBが死んでいて電池だけで動作してるのかもしれませんね
マザーボードと電源も疑わしくなってきました
    • good
    • 0
この回答へのお礼

やはりマザーボードでしょうか…ちょっとこのズレは大きすぎますよね。
hwmonitorによると今の電圧は

+3.3V 3.31V
+5V 4.92V
+12V 12.48V
VBAT 3.30V (VBAT?何だろう)

となっています。

他に不具合らしき症状はないので、とりあえずもう少し様子を見てみたいと思います。
回答ありがどうございました。

お礼日時:2009/12/04 17:33

マザーボード上にあるボタン電池が消耗している可能性があります


電池交換をして様子を見てください
    • good
    • 0
この回答へのお礼

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

BIOSの記録に問題ないので気がつきませんでしたが、なるほど電池ですか。
マザーボードの時計は、電源を入れている時でも電池に影響されているのですね。

ほとんど電源を切らないPCなので、そこまで考えが及びませんでした。
早速数日中に、交換したいと思います。

お礼日時:2009/12/04 11:37

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