「システム」プロセスによる高CPU使用率のトラブルシューティング


99

システムがフリーズしているのに、システムプロセスが原因のCPU使用率が高いことが原因であることがわかりました。

私が実行しているアプリケーションはすべてSkype、TeamSpeak、Chromeであるため、CPUを大量に消費することはありません。

以下のスクリーンショットで問題自体と実行中のプロセスを確認できます。

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

CPU使用率が90%に達することもありますが、平均使用率は40〜65%です。

私のPCパラメーター:

  • Windows 8(顧客プレビュー)
  • Intel Core i3-2350M
  • 8 GB RAM

私はどんな助けの試みにも感謝します!よろしく。

- 更新 -

以下のユーザーが素晴らしい答えを投稿したので、システムで最もCPUを消費しているプロセスが呼び出されることに気付きましたArthurx.sys、シンプルなグーグルはそれがTPLinkドライバー(wifiアダプター、私は2週間前に購入しました!) Windows MSDNからインストールされていますが、添付のCDからドライバーをインストールしようとしましたが、役に立ちません。システムの起動時から、CPUの5%程度しか使用していませんが、2〜4時間の作業の後、CPU使用率の40〜60%に達します。

装置名: TPLink WN722N


5
注文のポイント、カスタマープレビューを実行している場合、すべてが最新ではありません...カスタマープレビューを実行しています。
エベレット

@Everett Yea、おそらくあなたは正しい...しかし、たとえそれが顧客(またはリリース)プレビューであっても、それはまだ起こるべきではありませんでした。
スコット

4
@Scottはい、この種のこと顧客プレビューで発生するはずです。もちろん、そもそもこれらのバグが存在しない方が良いのですが、これがプレビューの目的の1つです。ユーザーが新機能やユーザーインターフェイス要素を少し早く確認し、アプリの互換性を確認する機会であるだけでなく、開発チームがフィードバックを得て、より多くのユーザーからバグを見つける機会でもあります。コアシステムはまだ実稼働で使用する準備ができていません。完全に実行またはデバッグされていないため、メインシステムとして使用するためのものではありません。もしそうなら、彼らはそれとともにRTMを使うでしょう。
ジョエルCoehoorn

1
xperfを使用してトレースします。しかし、他のユーザーが言ったように、CPの使用をやめてください。リリース前のバージョンはすべて2週間で有効期限が切れます!
magicandre1981

1
この問題がWindows 8のRTMバージョンに存在することを確認する場合にのみ、私たちがあなたを助けることができます。プレビューリリースに存在する問題で誰かがあなたを助けることを期待することはできません。プレビューバージョンを使用していることを反映するために、タグを更新しました。
ラムハウンド

回答:


91

これは、障害のあるドライバーまたはシステムによってロードされた他のモジュールが原因である可能性があります。Systemプロセスの内部を調べるには、Process Explorerなどのツールを使用できます。

ダウンロードして実行し、システムプロセスを選択して右クリックし、[プロパティ]を選択します。

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

[スレッド]タブに切り替えます(記号に言及しているダイアログボックスは無視してください)。

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

これにより、どのファイルが過剰なCPU使用率を使用しているかが表示され、そこから診断を試みることができます。

ただし、コメントで他の人が言っているように、プレビュー版からできるだけ早く離れる必要があります。


ご回答ありがとうございます。更新された質問をご覧ください。
スコット

2
@Scottあなたが今アップグレードしていることに気付きました。それでもこの問題が解決しない場合は、TPLinkのサイトにベータ版のWindows 8ドライバーがあります。これは、ここで見つけることができます:tp-link.com/en/support/download/...
グラハム賭け

2
risdxc64.sysは、カードリーダーのドライバーであるThinkpadラップトップの通常の容疑者のようです。たとえば、こちらを参照してください:forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/…-最新のものを再インストールして解決しました勝利10の1つ
パトリックf

Windows 10でも同様の問題がありました。私にとっては、多くのCPUを使用していたavc3.sysでした。Bitdefender Antivirus Freeの一部であることが判明しました。
ブルーノ

2
間違ったツールを使用した@Legends。ProcExpは、それほど役に立たないショットを示しています。cpuの使用状況を分析する方法を詳細に示すために、Windows Performance Toolkitに関する回答を書きまし
-magicandre1981

90

CPU使用率の問題を診断するには、Windowsのイベントトレース(ETW)を使用してCPUサンプリングデータ/プロファイルをキャプチャする必要があります。

データをキャプチャするには、Windows SDKの一部であるWindows Performance Toolkitをインストールします

Windows 10 WPTは、Windows 8 / Server 2012、Windows 8.1 / Server 2012R2、およびWindows 10 / Server 2016で使用できます。Windows7を引き続き使用する場合は、ビルド15086でSDK / WPTを使用します

ここに画像の説明を入力してください (他のすべてのエントリは選択解除できます)

ここでWPRUI.exe、実行、選択First Level、リソースの下でCPU使用率を選択し、開始をクリックします。

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

次に、1分間のCPU使用率をキャプチャします。1分後、[ 保存 ]をクリックします

次に、図に表示されるようにグラフをにドラッグアンドドロップし、列を並べて、生成されたETLファイルをWindows Performance Analyzerで分析します。CPU Usage (sampled)analysis pane

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

WPA内で、デバッグシンボルロードし、SYSTEMプロセスのスタックを展開します。このデモでは、CPU使用率はnVIDIAドライバーから取得されます。


次のデモでは、CPU使用率はRealtek NICドライバーから取得されます。

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


ntoskrnl.exeのような呼び出しが表示されたらVi KeTrimWorkerThreadRoutine、ntoskrnl.exe!Mm Verifier TrimMemory、ntoskrnl.exe!Verifier KeLeaveCriticalRegion。これは、Driver Verifierが有効になっていることを意味します。また、これによりパフォーマンスが大幅に低下し、システムの使用率が高くなります。Driver Verifier無効にして再起動します。

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


このデモでは、ドライバーiai2ce.sys(Intel Serial IO GPIO Controllerドライバー)が原因です。

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


この例では、CPU使用率はrtsuvc.sysRealtek UVC webcam Driver

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


このデモは、Bitdefenderドライバーが ignis.sys

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


次の例では、broadcomネットワークドライバーによってCPU使用率が発生します bcmwl664.sys

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


ntoskrnl.exe!MiZeroWorkerPages原因として見ると、よりトリッキーです。これは、再度使用する前にメモリをゼロにするカーネルの機能により、CPU使用率が高くなることを意味します。

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

どのプロセスがそれを引き起こしているのかを実際に検出する方法はありませんが、Chromeでハードウェアアクセラレーションを有効にしている場合、Chromeがそれを引き起こす可能性があることを知っています。したがって、これが表示されてChromeを使用する場合は、Chromeのハードウェアアクセラレーションをオフにします。


これらのntoskrnl.exe!RtlpGenericRandomPatternWorkerが表示されたら、ntoskrnl.exe!RtlpTestMemoryRandomUp呼び出し

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

CPUの使用率は、問題のメモリをテストするためにカーネルから取得されます(memtest)。この使用は、Windows 8.1 / 10のアイドルメンテナンスタスクを介してトリガーされます。タスクスケジューラを使用して、アイドルタスクを無効にすることができます。

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

Windows 10では、タスクはMicrosoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnosticの下でRunFullMemoryDiagnosticsと呼ばれます

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


この場合、CPU使用率はWindows ServerのData Deduplication機能(dedup.sys!DdpPostCreate)から来ているようです。

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


このデモでは、CPU使用率はWIFIカードドライバーが原因です。 athrx.sys

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

これが表示されている場合は、ドライバーの更新を検索してください。


次のデモでは、citrixドライバーが関係しています。

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

Citrixの問題を解決する方法については、ITにお問い合わせください。


このデモでは、関数usbhub.sys!UsbhPortRecycleによりCPU使用率が発生します。

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

一部のユーザーにとっては、USB2.0ポートを1.1速度に変更したり、USBドライブを他のUSB 2.0ポートに接続したりするのに役立ちました。


この場合、少量のSYSTEM使用量は、Acronisドライバーから発生しますtdrpm251.sys

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


このデモでは、CPU使用率ntoskrnl.exe!KeAcquireSpinLockRaiseToDpcntoskrnl.exe!KeReleaseSpinLock

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

そのため、ドライバーはSpinLocksを非常に頻繁に使用しています。原因となるデバイス/ドライバが見つかるまで、一部のデバイス/ドライバを無効にします。


この場合、CPU使用率はドライバーによって引き起こされます L1C62x64.sys

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

これがqualcomm atheros AR8171/8175 PCI-E gigabit Ethernetドライバーです。そのため、スタックに表示されている場合はドライバーを更新してください。


ここで、CPU使用率はホストファイル(netbt.sys!DelayedScanLmHostFile)のスキャンから得られます

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

この使用を避けるために、ホストファイルが大きすぎないことを確認してください。


この場合、CPU使用率はSRTSP64.SYSsymantec からのものです。

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

使用済みのsymantec製品を最新バージョンに更新します。


ここで、CPU使用率はAMD GPUドライバー(atikmdag.sys)からのものです

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

これが表示される場合は、AMDサイトにアクセスして、AMDカードの最新のドライバーを入手してください。


ここでは、ドライバーTMXPFlt.sysおよびVsapiNt.sysによりCPU使用率が高くなります。

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

私が見るところ、これらのファイルはトレンドマイクロのAVスイートの一部です。ツールを更新するか、削除します。


この例では、CPU使用率は関数から取得されます ntoskrnl.exe!MmGetPageFileInformation

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

この関数は、ページファイルに関する情報を取得します。

ルーチンの説明:このルーチンは、現在アクティブなページングファイルに関する情報を返します。

ページファイルを無効にし、再起動してから再度有効にして、修正されるかどうかを確認します。また、Intelサービス(Intel Content Protection HECIサービスなど)を削除すると、ユーザーにとっては修正されたようです。


ここでは、ドライバーNetwtw04.sys(Intel Wifiドライバー)が関数flushCompleteAllPendingFlushRequestsを呼び出しているため、CPU使用率が高くなっていることがわかります。

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

デバッグシンボルがロードされるため、Windows受信トレイドライバーが使用されます。ここでのみ、デバッグシンボルを取得して、関数名を持つコールスタックを確認できますflushCompleteAllPendingFlushRequests

ここで、Intelから最新のドライバーインストールして修正する必要があります。


SYSTEM使用の最も複雑なケースは、コールスタックでのACPI.sysの使用です。

Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , ,   |    |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , ,   |    |    ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , ,   |    |    ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , ,   |    |    ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , ,   |    |    ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , ,   |    |    ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , ,   |    |    ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , ,   |    |    ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , ,   |    |    ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , ,   |    |    |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , ,   |    |    |    |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , ,   |    |    |    |    |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , ,   |    |    |    |    |    ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , ,   |    |    |    |    |    |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , ,   |    |    |    |    |    |    |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48

これはデバッグが非常に困難です。でSysinternalsのトピック、私はいくつかのアドバイスを記載されています:

  • CPUファンのほこりのためにCPUが過熱しないことを確認してください
  • (同じ)BIOS / UEFIを更新または再フラッシュする
  • デフォルトのBIOS / UEFI設定をロードする
  • バッテリーが破損していないことを確認し、ノートブックからバッテリーを取り外すか、デバイスマネージャーでバッテリーを無効にします。
  • 古いHDDの隣にSSDをインストールするためにDVD / Blue-Rayドライブをキャディに交換した場合は、HDDキャディのジャンパー変更します

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


次のデモではigdkmd64.sys、Intel HD 630用のバージョン.4574のIntel HDドライバーが問題の原因です。

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

解決策は、少なくとも.4590のバージョンのドライバー更新することです。


次の場合、SYSTEMプロセスのCPU使用率はドライバーによって引き起こされます stdriverx64.sys

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

これは、オーディオストリーミングドライバーのようです。WPAでこれが表示される場合は、このソフトウェア/ドライバーを更新してください。


risdxc64.sysCPUの使用率が高くなるSYSTEMのコールスタックで呼び出されるドライバーが表示される場合、Ricoh PCIe SDXC / MMCホストコントローラードライバーを更新するか、ドライバーの更新で修正されない場合はデバイスマネージャーでSDカードリーダーを無効にします。

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

このSDカードリーダーは、多くのLenovoデバイスに組み込まれているようです。


ユーザー@stevemidgleyは、CPU使用率が高くなるという新しい問題を示しました。 Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk

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

ここで、ドライバーUDE.sysが原因であることがわかります。

シンボルハブ内

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

私はそれがモデムドライバに属し、トレースのPNPデータがFibocom L850-GL可能なデバイスとして(LTEモデム)を示していることがわかります:

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

そして解決策は、デバイスマネージャーでモデムとUSB複合デバイスを無効にすることです。



6
いいね!!! 1 .... shizzleのために
ポンジュースIT

1
@stevemidgley FxUsbPipeRequestWorkItemThunkはデータを処理します。スタックをさらに拡張します。また、あなたがデータを転送するために携帯電話を接続すると、ETL file.USB複合デバイスは、スマートフォンのドライバー可能共有
magicandre1981

1
@stevemidgleyはUSBデバイスを有効にしてトレースをキャプチャします。詳細を確認するにはETLファイルが必要です。
magicandre1981

1
生のUSBデータである@stevemidgley、上記の答えからトレースCPU使用率トレースが必要です。
magicandre1981

1
@stevemidgley OK、ドライバーUDE.sysが原因のようです。そして、私が見るところからそれはあなたのLTEモジュールであるFibocom L850-GLに属します。
magicandre1981

4

追加するロードデバッグシンボルのノートmagicandre1981の優れた答え:Windowsパフォーマンス・アナライザでは、シンボルをロードする場合は、正しく動作刻々と過ぎた後、トレース>シンボルの読み込みをあなたが一番上にプログレスバーが表示されるはずのロードシンボルその横にファイル名を表示してとります完了するまでに数分かかります。また、診断コンソールに以下のような多くの行が表示されるはずです。

SYMSRV:  File: Accessibility.ni.pdb

SYMSRV:  Notifies the client application that a proxy has been detected.
SYMSRV:  Connecting to the Server: http://msdl.microsoft.com/download/symbols.
SYMSRV:  Successfully connected to the Server.
SYMSRV:  Sending the information request to the server.
SYMSRV:  Successfully sent the information request to the server.
SYMSRV:  Waiting for the server to respond to a request.
SYMSRV:  Successfully received a response from the server.
SYMSRV:  Closing the connection to the Server.
SYMSRV:  Successfully closed the connection to the Server.
SYMSRV:  Get File Path: /download/symbols/Accessibility.ni.pdb/7B46178957827CDAB7EE4C86EDEE1DAE1/Accessibility.ni.pdb

これらのいずれも表示されない場合は、デバッグシンボルの読み込みが機能していない可能性があり、トレースを適切に解釈できません。

私の場合、最初のデバッグシンボルの読み込みは機能しませんでした。次の手順に従って修正しました。

  1. x86またはx64バージョンのWindows Performance Toolkitを使用しているかどうかを判断します。

    これは、Windowsのx86ビルドでは簡単です。x64ビルドでは、* 32タグのタスクマネージャーを確認できます。存在しない場合は、x64バージョンを実行しています。

    WPTは、アーキテクチャに関係なく、常にProgram Files(x86)にインストールされることに注意してください。

  2. dbghelp.dllおよびsymsrv.dllファイルを正しいデバッガーディレクトリからWindows Performance Toolkitディレクトリにコピーします。私のシステムでは、関連するディレクトリは次のとおりです。

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 そして C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

  3. dbghelp.dllの正しいバージョンが選択されるように、Windowsパフォーマンスアナライザーを再起動します。


2
これを私の回答に編集として追加する必要があります。これは本当の答えではありません
-magicandre1981

0

まず、提供されるレビューと情報は非常に有益ですが、通常ははるかに少ないインテリジェンスでこれを把握できます!MSCOFIG.EXEとバイナリ検索を使用して、問題のあるサービスを分離しました。このような問題のほとんどは、Intelソフトウェアが原因であることがわかりました。会社名のないサービスを無効にすることから始めます。次に、Intelサービスを開始します。次に、完全なバイナリ検索。通常、誰かのPCで問題を解決するのに最大で1時間かかります。Intelは決して優れたコンピューター会社ではありませんでしたが、彼らのソフトウェアはそれを実証しています。Pentiumアーキテクチャがリリースされてから10年が経ちました。VAXの時代に誰がページメモリを備えたコンピューターアーキテクチャを構築したでしょうか。まあ、私はあなたを歴史に飽きさせません。私がAMDやMicrosoftのファンでもない。おそらくいつかは


VAXがページメモリを使用していることを理解していますか?そして、今日、ページメモリを使用しないのはなぜですか?
ジェイミーハンラハン

-1

同じ問題がありましたが、RAMモジュールの1つを取り外すと消えました。欠陥があったようです。Windows 7、32ビットを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.