Windowsカーネルモードの過剰なCPU使用率を分析するにはどうすればよいですか?


8

私のWindows XPマシンは、数分使用した後、奇妙な再起動のたびに半凍結し始めました(プログラムが異なる/追加のプログラムがまったく起動しない)。


更新:Process Explorerを使用して、もう少し詳細を取得できました。これは2コアCPUであり、100%のカーネル使用率は1コアでのみです。プロセスリストには、DPC- 50%(1つのコアでは100%)の遅延プロシージャコールが表示されます。だから今の質問です:** DPCとは何ですか、どうすれば修正できますか?


次のアップデート:OKIES ...使用して、これをしている私は私のWindows XP上で動作しているXperfは取得することができました、そしてサンプルが、私は私のwin7のノートパソコンでうまく表示をしたダンプします。はい、Windows XPで取得したダンプを表示するには、Win7 / Vistaコンピューターが必要です。 ただし、次の問題に直面しています。xperfトレースを有効にできますxperf -on Latencyまた、xperfトレースがオンのときにも問題が再発しますが、DPCが100%になるとすぐに、Windowsは新しいプロセス(またはそのプロセス)を開始しません。起動が完了しない)(たとえば、開いているcmdウィンドウは正常応答し続けますが、実行しようとするすべてのexeがハングするだけです(dirこれはcmdコマンドなので正常に機能します)- CreateProcessカーネルの一部でのみハングすることを前提としています)。さて、新しいプロセスを起動できないということは、実行できないことを意味しますxperf -d dumpfile.etl。なぜならそれを cmdウィンドウで入力すると、ハングするだけだからです。

だから私はここで運が悪いようです。手動でドライバーを無効にするよりも、リグ全体を捨てたい... :-)

他のアイデアは大歓迎です!


つまり、Windowsは理論的には応答性を維持しましたが(たとえば、マウスカーソルが正常に移動してクリックできるようになり、最終的にクリックが認識されました)、ユーザーが行った操作は数分後に(文字どおり)応答しました。

例:通常、キーボードのNum-lockキーを押すと、キーボードのNum-lock LEDが切り替わります。これは私の半冷凍機にも当てはまりますが、1〜2分後になってからです。

かつて、Process Explorerを起動したところ、数分後、システム情報のグラフは、赤い線(カーネルモード)で100%のCPU使用率を明確に示し、緑の線はゼロのままでした。この状態では、画面上でグラフは更新されていますが、機械を操作することはできません。(まあ、あなたがクリックするたびに数分待つ用意がない限り)

だから、私は何週間もこのマシンに何も新しいものをインストールしなかったので、何が問題なのか疑問に思っています。(再起動が役立つ場合があります。マシンが長期間使用可能になる前に、2回目または3回目の再起動が必要になることがあります。)

さて、どのように私は見つけることができますどのような実際に過度のカーネルモードの使用状況を引き起こしていますか?


注:sysinternalsフォーラムにも投稿しています


1つの方法は、消去のプロセスを使用することです。XPでMSCONFIGプログラムを実行し、[スタートアップ]タブに移動してすべてを無効にし、再起動して問題が解決するかどうかを確認します。うまくいかない場合は、AUTORUNSやHijackThisなどのプログラムを試して、除去についてより積極的に試してください。操作を元に戻したら、一度に1つずつ再度有効にします。起動時に実行されるがらくたの90%は必須ではありません。他の10%はジャンクウェアです:-)
Psycogeek

@Psycogeek-感謝します。私がこれを持っていないのは、私がいない日数がかかるためです。-)
Martin

ああ、スタートアップジャンクを無効にするその分です。デバイスドライバーを無効にする日です:-)私があなたの問題を解決しようとすると、手がかりのセット全体を使って、実際にはいくつかのウイルスタイプのものに聞こえます。しかし、応答しないデバイスである可能性があります。一時的に削除できる外部に詰まっているものはありますか?ドライブのSMARTテストなど、ディスクのチェックを実行しましたか。それから何か手がかりを得るかどうかを確認するには?
Psycogeek

わかりましたので、今(dpc)私はここでものをチェックする必要があります:superuser.com/q/202254/50211そして、私がこれの底に到達できるかどうかを見てください。
マーティン

結果はどうでしたか?
stej

回答:


2

LatencyMon(http://www.resplendence.com/latencymon)などのツールを使用して、フリーズを引き起こしているDPCルーチンを見つけることができます。合計時間が最も長いDPCルーチンを探すだけです。


明らかに、LatencyMonはWindows XPでは機能しません。そして問題は、Windows XPシステムのパフォーマンスの問題です。
エドワード

私はそれに気づきませんでした-ありがとう。私の提案はまだ同じですが、代わりに別のプログラムを使用してください。1つの例:DPC遅延チェッカー(thesycon.de/deu/latency_check.shtml)。
Zero3 2014

実際、LatencyMonの機能は、Latency Checkerよりもエンドユーザーにとってはるかに優れています。LatencyMon分析システムは、ドライバーが最も多くのリソースを消費するレベルまで非常に詳細な情報を提供します。これは、システムパフォーマンスに最悪の影響を与えます。もう1つの側面として、レイテンシチェッカーは、最も基本的な情報のみを示すグラフを表示するだけです。それはあなたのシステムがDPCレイテンシを超えているかどうかです。以降の作業はすべて自分で行います。LatencyMonと同じように機能する、XP用の同等または類似のツールを見つけるのに苦労しています。
エドワード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.