ntoskrnl.exe!_misaligned_access はアイドル時に CPU を大量に消費します

ntoskrnl.exe!_misaligned_access はアイドル時に CPU を大量に消費します

以下で説明する不要な CPU 使用の原因について教えてください。

症状:

  • コンピュータがアイドル状態になると、システム プロセスが CPU の約 30% を消費し始めます。いずれかのキーが押されたり、マウスが動かされたりすると、このプロセスはすぐに停止します。これはかなり薄いノートブックであり、冷却は CPU の高使用率を持続的に考慮して設計されておらず、騒音が大きくなるため、煩わしいものです。
  • バッテリー使用時には発生しません。
  • ウイルス対策やインデックス作成関連のものとは関係がないようです。簡単に区別できるプロセスがあるからです。

これまでにわかったこと:

  • そのプロセスはシステムPIDは常に4で、説明はNT カーネルとシステム
  • このプロセスを調べるとプロセスハッカー(右クリック/プロパティ、次にスレッド タブ)、この不要な CPU 使用率の原因となっているスレッドが存在することがわかりますntoskrnl.exe!_misaligned_access+0x3f0。他のプロセス エクスプローラー アプリケーションでも同じことが起こります。プロセス名のアドレスは再起動のたびに変わりますが、再起動中は同じままです。

    • 実際には、これらのプロパティを持つスレッドは複数ありますが、常に同じスレッドが CPU (同じ PID) を使用します。
    • 右クリックして検査すると、このスレッドのスタックが表示されます

      0、ntoskrnl.exe!KeIsAttachedProcess+0x92e

      1、ntoskrnl.exe!KeWaitForMultipleObjects+0x140f

      2、ntoskrnl.exe!KeWaitForMultipleObjects+0xcb9

      3、ntoskrnl.exe!_misaligned_access+0x5fd

      4、ntoskrnl.exe!RtlGetCompressionWorkSpaceSize+0x1f0

      5、ntoskrnl.exe!KeSynchronizeExecution+0x59d6

  • 同じプロセスのプロパティ ウィンドウに [ハンドル] タブがあります。この行は、ハンドルが不正な動作をしているスレッドのアドレスと同じであるため、上記のスレッドに関連している可能性があります。

    • タイプ: シンボリックリンク、名前: \GLOBAL??\USB#VID_8087&PID_8000#5&47f868&0&1#{f18a0e88-c30c-11d0-8815-00a0c906bed8}、ハンドル: 0x3f0
  • デバイスマネージャーでデバイス(VID 8087およびPID 8000)を調べると、Intel Generic USB Hubであることがわかりました。

  • これ以上何を探せばいいのか分かりません。

環境の詳細:

  • Dell E7440、いくつかのDell の大量のソフトウェアがインストールされています。コンポーネントやドライバーの一部が不足していることが問題なのかもしれませんが、それでもリストされている可能性のあるものをすべてインストールしたくありません。デバイス マネージャーにはドライバーのないデバイスは表示されません。
  • Windows 8.1 Enterprise 64 ビット、ハッキングされていない、すべての可能なアップデート済み。約 1 か月前に公式 ISO からインストールされましたが、それほど多くのゴミはインストールされておらず、それ以降エラーや BSOD は発生していません。
  • Windows に組み込まれている Security Essentials 以外にウイルス対策はありません。

答え1

CPU 使用率は設計によるものです。これは関数ntoskrnl.exe!RtlScrubMemory/ ntoskrnl.exe!RtlpGenericRandomPatternWorker/から発生しますntoskrnl.exe!RtlpTestMemoryRandomUp

ここに画像の説明を入力してください

この関数は、RAM にランダム パターンを書き込み、RAM のエラーをテストします。Windows は、アイドル メンテナンス タスク中にこれを実行して、Windows を最適化します (WinSxS のクリーンアップ、ngen による .net ファイルの最適化)。

タスクスケジューラを実行し、Microsoft -> Windows -> タスクスケジューラに移動しIdle Maintenance

ここに画像の説明を入力してください

右クリックして選択しますdisable

ここに画像の説明を入力してください

答え2

残念ながら、タスク スケジューラにこの設定がなかったので、無効にするものはありませんでした。(Windows 10 b1607 を使用しています)

しかし、実際に役立ったのはDWORD値を追加することですメンテナンス無効 価値のある1このキーに:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance

その後、アイドル時の CPU 使用率が高くならなくなりました。

詳細は以下をご覧ください: https://www.tenforums.com/tutorials/40119-enable-disable-automatic-maintenance-windows-10-a.html

関連情報