web-dev-qa-db-ja.com

マシンがしばらくアイドル状態のときにCPUを使用するWindows10システム(ntoskrnl.exe)

ラップトップのCPUが使用され始め(おそらく15%の使用率ですか?)、CPUファンがオンになっていることに気付きました。通常、ラップトップが5分ほどアイドル状態になっている夕方です。 CPUを使用するプロセスはSystemでしたが、あまりわかりません。そのため、ProcessExplorerを実行したままにしてSystemのスレッドを監視することにしました。それは再びCPUを使い始めました、そしてこれは私が見つけたものです:

Process Explorer system

アイドル状態の数分後にCPUを消費するスレッドの開始アドレスはntoskrnl.exe!RtlAvlRemoveNode+0x7ba0でした。したがって、それはシステムのかなりの核心のようです。何がこれを引き起こしているのか、そして/または私がそれをさらに診断する方法を誰かが知っていますか? CPUファンがこのように回転するのは気に入らないので、システムの回転を停止したいと思います。

アイドル時にトリガーされるすべてのスケジュールされたタスクを無効にしました(PowerShell Get-ScheduledTask | Where-Object { $_.State -ne "Disabled" } | Select-Object TaskName, TaskPath, Triggers | Where-Object { $_.Triggers -match "MSFT_TaskIdleTrigger" }でそれらを検索します)が、それでも発生します。

2
Jez

スレッドの開始アドレスはRtlAvlRemoveNodeに言及しています。これは 関数ntoskrnl.exeを介して呼び出されます。 RtlはRun-TimeLibraryの略であるため、(ほとんどの場合、さらに詳しくは説明しませんが)ネイティブアプリケーション(たとえば、autochkプログラム)を介して呼び出されます。背景についてもっと知りたい場合は、 このサイト にたくさんの情報があります。ただし、これは開始アドレスのみであり、CPU時間の使用を引き起こすこの関数は必要ありません。 「スタック」ボタンを押して完全なコールスタックを表示するか、 ProcessThreadsView などのサードパーティツールを使用します。

2つの基本的なオプションがあります。

  • 証跡とエラーのアプローチ:適切なアプリケーションを無効にすることを期待して、たとえばタスクスケジューラ/セーフモードなどを使用してアプリケーションを無効にします。 (アプリケーションは、スクリーンセーバー、デフラグ、検索インデックスなどである可能性が最も高いですが、必ずしもPCがアイドル状態であることがトリガーされるものである必要はありません)

  • 分析的アプローチ:たとえば、問題のスレッドをさらに分析するか、「Windows Performance Toolkit」を使用してCPU使用率の原因となるアプリケーションをさらに特定することにより、問題を特定するためにさらに分析を実行します。

分析的アプローチにはかなりのオーバーヘッドがあり、知識的には、試行錯誤のアプローチをお勧めします。問題を抱えているのはあなただけではない可能性が高いと推測しているだけですが、最も一般的な解決策を試すことは良いアプローチです。

トレイルとエラーでどこにも到達しない場合は、より分析的なアプローチに切り替える必要があります。 HoDが彼のコメントで示唆したように、 Windows Performance Toolkit はここでの良い次のステップです。詳細情報を入手したり、特定の問題が発生した場合は、質問をさらに指定して、サポートさせていただきます。

この動作は、マルウェア、バグ、問題のある更新などによって引き起こされる可能性もあります。特に試行錯誤の方法を使用する場合は、それを考慮に入れてください。

1
Albin

呼び出しスタックで識別できる、呼び出されているサブシステムは次のとおりです。

  • MMCSS-mmcss.sys
  • DirectX 12-dxgmms2.sys

他の低レベルのユーティリティ関数呼び出しを見ることができますが、呼び出し元が誰であるかがわからないため、多くの情報を追加しません。ここに明確に示されている高レベルのサブシステムは、MMCSSとDirectX12です。

  • マルチメディアクラススケジューラサービス(MMCSS):マルチメディアアプリケーションがCPUリソースへの優先アクセスを有効にします。
  • DirectX 12:ビデオおよびオーディオハードウェアと直接連携するWindowsソフトウェア。

したがって、CPUを使用しているのは、グラフィカルコンポーネントを備えたアプリケーションであることは明らかです。このGUIコンポーネントはCPUチャージの原因である場合とそうでない場合がありますが、ここで重要な結論は、問題のアプリケーションにGUIがあるということです。

グラフィカルアプリケーションがタスクスケジューラによって起動されることはないため、これは進むべき方向ではありません。アイドル状態によってトリガーされるグラフィカルアプリケーションを見つける必要があります。

最も明白な候補はスクリーンセーバーです。テストとしてオフにすることをお勧めします:

  • デスクトップを右クリックして、[パーソナライズ]> [画面のロック]> [スクリーンセーバーの設定]を選択し、スクリーンセーバーとして(None)を設定して、[OK]をクリックします。
  • 代わりに、[コントロールパネル]> [電源オプション]> [プラン設定の変更]で、[ディスプレイをオフにする]を設定して、少なくとも画面が空白になるようにすることができます。

それでも問題が解決しない場合は、アイドル状態で何か別のことを行う、インストールされている別のグラフィカルアプリケーションを見つける必要があります。

1
harrymc

システムがしばらくアイドル状態になった後に起動するのは、Windows10のメンテナンスタスクだけです。

0
David Marshall