web-dev-qa-db-ja.com

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

私は、しばらくして私のシステムがフリーズしていて、それはおそらくシステムプロセスによって引き起こされた高いCPU使用率が原因であることに気付きました。

私が実行しているすべてのアプリケーションはSkype、TeamSpeak、そしてChromeなので、間違いなくその量のCPUを使うべきではありません。

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

enter image description here

時々CPU使用率は90%に達しています、しかし平均使用率は40-65%のようです。

私のPCパラメータ:

  • Windows 8(カスタマープレビュー)
  • インテルCore i3 - 2350M
  • 8 GBのRAM

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

- UPDATE -

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

デバイス名:TPLink WN722N

84
Scott

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

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

enter image description here

[スレッド]タブに切り替えます(シンボルについて言及しているダイアログボックスは無視します)。

enter image description here

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

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

85
Graham Wager

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

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

Windows 10 WPTは、Windows 8/Server 2012、Windows 8.1/Server 2012 R2、およびWindows 10/Server 2016で使用できます。それでもWindows 7を使用する場合は、 SDK/WPT with Build 15086 を使用してください。 。

enter image description here (他のすべてのエントリは選択解除できます)

WPRUI.exeを実行し、First Levelを選択し、Resourceの下からCPU usageを選択し、startをクリックします。

enter image description here

今度は1分間のCPU使用率を記録します。 1分後、Saveをクリックしてください。

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

enter image description here

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


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

enter image description here


ntoskrnl.exe!ViKeTrimWorkerThreadRoutine、ntoskrnl.exe!MmVerifierのような呼び出しが表示されたら/ TrimMemory、ntoskrnl.exe!VerifierKeLeaveCriticalRegion、これはDriver Verifierが有効になっていることを意味します。これもパフォーマンスを大きく損ない、高いシステム使用率を引き起こします。 Driver Verifierを無効にする そして再起動します。

enter image description here


このデモでは、ドライバiai2ce.sys(Intel Serial IO GPIOコントローラドライバ)によって、次の処理が行われます。

enter image description here


この例では、CPU使用率はrtsuvc.sysであると思われるファイルRealtek UVC webcam Driverから来ています。

enter image description here


このデモはBitdefenderドライバignis.sysを示しています

enter image description here


次の例では、CPU使用率はbroadcomネットワークドライバbcmwl664.sysによって決められています。

enter image description here


ntoskrnl.exe!MiZeroWorkerPagesが原因であると思われる場合、それはトリッキーです。これは、メモリが再び使用される前にメモリをゼロにするカーネルの機能が高いCPU使用率を引き起こすことを意味します。

enter image description here

どのプロセスが原因で発生したのかを実際に検出する方法はありませんが、Chromeでハードウェアアクセラレーションを有効にしている場合、Chromeが原因となっている可能性があります。そのため、これを確認してChromeを使用する場合は、Chromeのハードウェアアクセラレーションをオフにしてください。


ntoskrnl.exe!RtlpGenericRandomPatternWorkerが表示されたら、ntoskrnl.exe!RtlpTestMemoryRandomUpcalls

enter image description here

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

enter image description here

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

enter image description here


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

enter image description here


このデモでは、CPU使用率はWIFIカードドライバathrx.sysによって引き起こされます

enter image description here

これが表示されたらドライバのアップデートを検索してください。


次のデモでは、Citrixドライバが含まれています。

enter image description here

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


このデモでは、関数usbhub.sys!UsbhPortRecycleがCPU使用率を引き起こします。

enter image description here

USB2.0ポートを1.1スピードに変更する または他のUSB 2.0ポートにUSBドライブを接続することは、何人かのユーザーを助けました。


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

enter image description here


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

enter image description here

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


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

enter image description here

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


ここでは、CPU使用率はHostファイル(netbt.sys!DelayedScanLmHostFile)をスキャンしています。

enter image description here

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


この場合、CPU使用率はsymantecのSRTSP64.SYSから取得されます。

enter image description here

使用しているシマンテック製品を最新バージョンにアップデートしてください。


ここでは、CPU使用率はAMD GPUドライバ(atikmdag.sys)から来ています

enter image description here

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


ここでは、ドライバーTMXPFlt.sysとVsapiNt.sysが原因でCPUの使用率が高くなります。

enter image description here

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


この例では、CPU使用率は関数ntoskrnl.exe!MmGetPageFileInformationから来ています。

enter image description here

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

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

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


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

enter image description here

デバッグシンボルがロードされるため、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ドライブをCaddyに交換した場合は、 ジャンパの変更HDDキャディの

enter image description here


次のデモでは、Intel HD 630用のバージョン.4574のIntel HDドライバigdkmd64.sysによって問題が発生します。

enter image description here

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


次の場合、SYSTEMプロセスのCPU使用率はドライバstdriverx64.sysによって発生します

enter image description here

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


SYSTEMのコールスタック内にrisdxc64.sysという名前のドライバがあり、CPU使用率が高くなる場合は、Ricoh PCIe SDXC/MMCホストコントローラドライバを更新するか、デバイスのSDカードリーダーを無効にします。ドライバの更新がそれを修正しない場合は、マネージャ。

enter image description here

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


78
magicandre1981

magicandre1981の優れた答えに追加するデバッグシンボルのロードに関するメモ [トレース]> [シンボルのロード]をクリックした後、シンボルが正しく機能する場合上部にプログレスバーが表示されます。シンボルの読み込み中、横にファイル名が表示され、完了までに数分かかります。また、診断コンソールには以下のような多くの行が表示されるはずです。

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を使用しているかどうかを調べます。

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

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

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

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

  3. Windows Performance Analyzerを再起動して、正しいバージョンのdbghelp.dllが選択されるようにします。

3
AronVanAmmers

まず、提供されているレビューと情報は非常に有益です。ただし、通常はこれよりもはるかに少ない情報で解決できます。 MSCOFIG.EXEとバイナリ検索を使用して、問題のあるサービスを特定しました。私はこのような問題のほとんどがIntelソフトウェアによって引き起こされているのを見つけました。会社名を持たないサービスを無効にすることから始めます。それから私はIntelのサービスから始めます。それからフルバイナリサーチ。誰かのPCの問題を解決するのに通常最大で1時間かかります。 Intelは決して良いコンピュータ会社ではなかった、そして彼らのソフトウェアはそれを実証している。 Pentiumアーキテクチャがリリースされたときには10年前のアーキテクチャであったことに直面しましょう。 VAXの時代には、誰がページメモリを使ったコンピュータアーキテクチャを構築したでしょうか。さて、私はその歴史をあなたにあきらめることはありません。私はAMDまたはMicrosoftのどちらかのファンではありません。おそらくいつか、私たちは再び本物のコンピュータを作ることに戻るでしょう。

0
Leonard Umina