web-dev-qa-db-ja.com

GetStackLimitsでのアイドル時のntoskrnl.exeからの高いCPU

Windows10に奇妙なバグがあります。

5分間アイドル状態になると、CPUが高くなります。 Win Performance Analyzerを使用したところ、GetStackLimitsスレッドのntoskrnl.exe内で発生することがわかりました。

すべてのドライバーを更新しましたが、すべて機能しています。アイドルタスクはすべて無効になり、削除されます。また、sfc/scannowとchkdskをエラーなしで実行しました。

カーネル内にあるときにエラーを見つけるにはどうすればよいですか?!

3
Martin Jensen

私はずっと前に私の問題に対する答えを見つけましたが、ここにそれを追加するのを忘れました。

これは、Windows10のメンテナンス機能でした。

RunFullMemoryDiagnostic

下にあります:

\ Microsoft\Windows\MemoryDiagnostic

これを無効にすると、このタスクでCPUを使用する代わりに、メンテナンスタスクを終了できます。

最近、メモリの問題やBSODは発生していませんが、32 GBのメモリがあり、このタスクを完了するための役割を果たす可能性があります。

私はそれを数時間実行しましたが、それは決して終了しなかったので、私はそれなしではるかに良いです。

でも助けてくれてありがとう!

2
Martin Jensen

マーティン、私の場合、Hyper-Vが有効になっていて(Windows 8.1から10にアップグレードする前)、おそらくデスクトップシステムに付属のRealtek PCIe GBEファミリ(イーサネット)コントローラーと互換性のないブリッジネットワーク接続を使用していることが原因でした。もともとはWindows8.0がインストールされていました。 Hyper-Vを使用した唯一の理由は、Windows Phone8の開発のためでした。私はこれを何年も使用していませんが、ネットワークはブリッジ接続で実行されており、ブリッジなしでは機能させることができませんでした。これらの設定については何も知りません。 Visual Studioインストーラーは、すべてのHyper-Vおよび仮想ネットワークのセットアップを行いました。

この問題を解決するには、[Windowsの機能をオンまたはオフにする]ダイアログパネルでHyper-Vを削除するだけで、ブリッジ接続が自動的に削除されました。次に、直接イーサネット接続を再び機能させるために数時間を費やしました。診断はこれを助けませんでした。私はついにルーターで使用されている接続ポートを別の接続ポート(4つのうち)と交換するという古いトリックに頼りました。Windowsはついにホームネットワーク上の他のコンピューターを再び見ることができました。

問題の診断に役立てるために、MagicAndre1981のxperfcmdセットアップを使用してetlを生成しました。 ( WPTのインストール を参照してください。)次に、このファイルを「Windows Performance Analyzer」で開き、MagicAndre1981の例のように「Stack」列を追加しました。システムルートの下のモジュール名は、私がずっと疑っていたように、それがHyper-Vである可能性があるという手がかりを与えてくれました。

0
Dan Randolph

残念ながら、アイドル状態が解消されたときにこの動作が停止するかどうかはわかりませんが、mpengine(MicrosoftのAVスタッフ)がMRTツールを実行し、狂ったようにスキャンするのは正常なことです。ユーザーがログオンしているときに少しアイドル状態になった後、しばらくの間(ツールがスキャンを実行する必要がある)CPU使用率。

マウスを動かしたり、キーに触れたりした後、CPUの使用率が通常に戻った場合は、おそらくこれが原因です。

これは、ProcessExplorerで最も簡単に確認できます。

アイドル状態が終了してもアクティビティが高いままである場合、それは別のことです。

0
Dvj