web-dev-qa-db-ja.com

シャットダウンしてもシステムの稼働時間が長すぎるのはなぜですか?

PCのどこかがおかしいことに気づきました。システムのタスクマネージャーに、システムの稼働時間が約3日と1時間であると表示されます。私は正直に言って、今週このマシンをたった10時間使用したことを伝えます。

コンピューターとの関係があまりないため、PCをスタンバイまたは休止状態にすることはほとんどありません。数時間シャットダウンを試みましたが、まだ変更されていません。

これは正常ですか?ダウンタイム/アップタイムに関する基本的な概念についてはあまり知りません。

5
Ashwin

タスクマネージャには、約3日と1時間のシステム稼働時間が表示されます。

私は今週、機械をたった10時間使用しました。

違いは正常です。

  • Windowsシステムの稼働時間は、現在の時刻とシステムの起動時刻の差です。

  • システムがスリープまたは休止状態で費やした時間は差し引かれません。

タスクマネージャには、「稼働時間」と呼ばれる情報が表示されます。この値はどのように計算され、Get­Tick­Count/Get­Tick­Count64によって報告された値と一致しないのですか?

タスクマネージャーは、現在の時間からシステムの起動時間を差し引いて、「稼働時間」を計算します。つまり、名前が間違っています。システムが起動してからの時間と呼ばれるべきです。コンピューターがスリープまたは休止状態にあった時間を差し引くことはありません。

一方、ティックカウントは、コンピュータの電源が入っている間に経過した時間のみをカウントします。

出典 タスクマネージャーは稼働時間をどのように計算し、なぜGetTickCountと一致しないのですか? by Raymond Chen (Microsoftのプリンシパルソフトウェアデザインエンジニア)。


最後のスリープまたは休止状態からの稼働時間を取得するにはどうすればよいですか?

setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since hardware boot: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -InstanceId 27 -Newest 1).TimeGenerated)); Write-Host $('Uptime since system resumed: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated));"

コマンドを少し明確にして、両方の情報を提供しました。

  • Windowsが起動してからの経過時間(ハイブリッドシャットダウン、フルシャットダウン、単純な再起動または休止状態のいずれかの後)。

  • Windowsが実行を再開してからの経過時間(スリープモードからの復帰後)。

注:システムがその間にスリープしなかった場合、両方の時刻は同じになります。

ソース Windows 8は誤った稼働時間(おそらく合計ハイブリッドブート稼働時間)を報告しますasm による


数時間シャットダウンを試みましたが、まだ変更されていません。

ハイブリッドブートが有効になっている。

稼働時間の従来の定義は、カーネルがそれ自体を初期化してからコンピュータが実行されている時間です。ハイブリッドブートは一時停止の特殊なタイプにすぎないため(以前はRAMおよびHibernateに一時停止がありました)、Windowsカーネルの同じインスタンスが次のようになるため、「シャットダウン」としてカウントされません。中古。

へのソースコメント Windows 8は誤った稼働時間(おそらくハイブリッドブートの総稼働時間)を報告)allquixotic による

ハイブリッドブートは、Windows 8の新機能であり、私たち全員がよく知っているHibernate機能を取り入れて、ブート時間を短縮するように改善しています。 PCには複数のセッションがあります。具体的には、カーネルセッション用に予約されているセッション0と、通常はユーザーセッションであるセッション1があります。休止状態の従来の実装では、休止状態をクリックすると、PCは現在メモリ(RAM)にあるすべてのものを取得し、ハードドライブのhiberfil.sysファイルに書き込みます。これには、セッション0とセッション1の両方のデータが含まれます。

ハイブリッドブートでは、両方のセッションを休止状態にする代わりに、セッション0のみを休止状態にし、ユーザーセッションを閉じます。したがって、PCを起動すると、PCはhiberfil.sysからセッション0を読み取り、メモリに戻し、新しいユーザーセッションを開始します。その結果、起動時間が劇的に速くなり、ユーザーセッションへの影響はありません。

ソース ハイブリッドブートを無効にせずにWindows 8で完全シャットダウンを実行する方法

リンクには、完全シャットダウンを実行する方法に関する説明が含まれています。


参考文献

The Old New Thing:Practical Development Through the Evolution of Windows by Raymond Chen (Microsoftの主要なソフトウェア設計エンジニア)。

8
DavidPostill