2013-01-03 03:52:20 +0000 2013-01-03 03:52:20 +0000
108
108

通过 "系统 "进程解决CPU使用率高的问题。

我注意到有一段时间我的系统冻结了,可能是由于系统进程导致的CPU使用率过高造成的。

我运行的所有应用程序都是Skype、TeamSpeak和Chrome,所以它绝对不应该占用那么多CPU。

你可以在下面的截图中看到问题本身和正在运行的进程。

有时CPU使用率达到90%,但平均使用率为40-65%。

我的电脑参数。

  • Windows 8 (客户预览版)
  • Intel Core i3 - 2350M
  • 8 GB RAM

我将感激任何帮助尝试! 请注意。

–UPDATE–

正如下面的用户发了一个很好的回答,我注意到系统中吃CPU最多的进程叫Arthurx.sys,简单的google告诉是TPLink驱动(一个wifi适配器,我已经买了像2周前!)驱动已经从Windows MSDN上安装好了,也试着从附送的光盘上安装驱动,但是没有用。从系统启动时,它只用了5%的CPU,但在工作2-4小时后,它的CPU使用率越来越高,达到了40-60%。

设备名称:TPLink WN722N

答案 (5)

107
107
107
2017-01-06 20:34:09 +0000

要诊断CPU的使用问题,应该使用Event Tracing for Windows (ETW)来捕获CPU采样数据/Profile.

要捕获数据,请安装Windows Performance Toolkit,它是Windows SDK的一部分.

Windows 10 WPT可以在Windows 8/Server 2012、Windows 8.1/Server 2012R2和Windows 10/Server 2016上使用。如果你还在使用Windows 7,请使用SDK/WPT with Build 15086

(其他项都可以不选)

现在运行WPRUI.exe,选择First Level,在资源项下选择CPU使用率,然后点击开始。1分钟后,点击保存

现在用Windows性能分析器分析生成的ETL文件,通过拖动CPU Usage (sampled)图到analysis pane中,像图中所示的列排序:

在WPA里面,加载调试符号,展开SYSTEM进程的Stack。在这个演示中,CPU的使用量来自于nVIDIA驱动


在下面的演示中,CPU的使用量来自于Realtek网卡驱动:


当你看到像ntoskrnl.exe! **的调用,如ntoskrnl.exe! Verifier* KeLeaveCriticalRegion,这意味着你启用了驱动验证器。这也会对性能造成很大的伤害,并导致系统使用率很高。關閉驅動程式驗證器 ](https://msdn.microsoft.com/en-us/windows/hardware/drivers/devtest/driver-verifier#howtocontroldv) 並重新開機。在这个演示中,驱动iai2ce.sys(Intel Serial IO GPIO控制器驱动)导致了这个问题。 CPU的使用是由broadcom网络驱动rtsuvc.sys


当你把Realtek UVC webcam Driver看成原因时,就比较麻烦了。这意味着内核中的函数在内存被清零后才可以再次使用,导致CPU使用率高:

目前还没有办法真正检测出是哪个进程导致的,但我知道如果你在Chrome浏览器中启用了硬件加速功能,Chrome浏览器也会导致。所以,如果你看到这个问题并使用Chrome浏览器,请关闭Chrome浏览器中的硬件加速功能。


当你看到那些ntoskrnl.exe!RtlpGenericRandomPatternWorker、ntoskrnl.exe!RtlpTestMemoryRandomUp调用

时,CPU的使用量来自于内核测试内存的问题(memtest)。这个使用量是通过Windows8.1/10的空闲维护任务触发的。你可以使用任务调度器来禁用空闲任务。 在Windows 10中,这个任务被称为RunFullMemoryDiagnostics,在Microsoft ⁄ Windows ⁄ MemoryDiagnostic ⁄ MemoryDiagnostic ⁄ RunFullMemoryDiagnostic下。


在下面的演示中,涉及到了Citrix驱动:

所以请联系IT人员解决Citrix的问题。 0端口对一些用户有帮助。


在这种情况下,少量的系统使用量来自于Acronis驱动ignis.sys


在这个演示中,CPU使用量bcmwl664.sysntoskrnl.exe!MiZeroWorkerPages.

所以一个驱动使用SpinLocks.aspx)非常多。在看到有的设备/驱动会出现这种情况时,请禁用一些设备/驱动,直到看到有的设备/驱动会出现这种情况为止。


在这种情况下,CPU的使用量是由驱动Data Deduplication

造成的,这是dedup.sys!DdpPostCreate驱动。所以,如果你在栈中看到驱动,请更新驱动。


这里的CPU占用率来自于扫描主机文件(netbt.sys!DelayedScanLmHostFile)

确保你的主机文件不要太大,以免造成这种占用。


这种情况下,CPU的使用量来自于symantec的athrx.sys。在这里,CPU的使用量来自于AMD的GPU驱动(attikmdag.sys)

如果你看到这个,请到AMD网站上获取最新的AMD卡的驱动。


这里的驱动TMXPFlt.sys和VsapiNt.sys导致CPU使用率高。

从我看到的情况来看,这些文件是趋势科技AV套件的一部分。更新工具或删除它。


在本例中,CPU的使用情况来自于函数usbhub.sys!UsbhPortRecycle

这个函数获取有关分页文件的信息。该例程返回当前活动的分页文件的信息。

禁用该分页文件,重启后再启用,看是否能解决这个问题。另外,删除Intel服务(如Intel Content Protection HECI服务)[似乎对一个用户来说已经解决了](https://msdn.microsoft.com/en-us/library/windows/hardware/ff548114(v=vs.85). 只有在这里,我们才能得到调试符号来查看函数名称为tdrpm251.sys的调用栈。

这里,你应该安装Intel最新的驱动来解决。


最复杂的情况是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 caddy上 如果你已经用Caddy替换了DVD/蓝光驱动器,在旧的HDD旁边安装一个SSD


下面的情况是由驱动ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc

这似乎是音频流驱动造成的。所以,如果在WPA中看到这个软件/驱动,请更新这个软件/驱动。


如果在SYSTEM的callstack中看到有一个叫ntoskrnl.exe!KeReleaseSpinLock的驱动导致CPU占用率很高,请更新Ricoh PCIe SDXC/MMC主机控制器驱动,或者在设备管理器中禁用SD读卡器,如果没有驱动更新解决的话,请更新Ricoh PCIe SDXC/MMC主机控制器驱动。


用户@stevemidgley 显示的是L1C62x64.sys

这里可以看到一个驱动 UDE.sys 导致的新问题,CPU占用率较高。在符号集线器中

我可以看到它属于Modem驱动,跟踪的PNP数据显示qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet(LTE调制解调器)可能的设备:

,解决的办法是在设备管理器中禁用调制解调器和USB复合设备。

93
93
93
2013-01-03 13:13:47 +0000

这可能是由于系统加载的驱动程序或其他模块有问题造成的。要查看系统进程内部,可以使用进程资源管理器这样的工具来查看。

下载并运行,然后选择系统进程,右键单击并选择属性:

切换到线程选项卡(忽略提到符号的对话框):

这将显示哪个文件使用了过多的CPU占用,然后你可以尝试着从这个文件中诊断。

正如其他人在评论中所说的那样,你真的需要尽快从预览版中移除!

4
4
4
2017-07-13 17:19:04 +0000

关于加载调试符号的注意事项magicandre1981的精彩回答: 如果在Windows性能分析器中加载符号正常工作,在勾选Trace 勾选Trace 勾选后,你应该会看到顶部有一个进度条,上面有加载符号,旁边有文件名,需要几分钟才能完成。另外,在诊断控制台中,你应该会看到下面这样的行:

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。

  1. dbghelp.dllsymsrv.dll文件从正确的调试器目录下复制到Windows Performance Toolkit目录下。在我的系统中,相关的目录是:

  2. 重新启动Windows Performance Analyzer,以便提取到正确版本的dbghelp.dll。

-1
-1
-1
2014-12-27 21:50:04 +0000

我也有同样的问题,当我把其中一个RAM模块拆掉后,它就消失了。看来它是有问题的。运行Windows 7,32位。

-1
-1
-1
2018-02-11 21:19:31 +0000

首先,审查和提供的信息非常丰富,然而你通常可以用更少的智慧来弄清楚这一点!我在这里,我只是用MSCOFIG.EXE和二进制搜索来分离出违规服务。我简单地使用MSCOFIG.EXE和二进制搜索来分离出违规服务。我发现大多数像这样的问题都是由Intel软件引起的。我首先禁用任何没有公司名称的服务。然后,我从英特尔服务开始。然后是全面的二进制搜索。通常最多需要一个小时的时间来修复某人的电脑中的问题。英特尔从来都不是一家好的电脑公司,他们的软件就证明了这一点。让我们面对现实吧,奔腾架构发布的时候已经是十年前的事情了。在VAX的年代,谁会用分页内存来构建一个计算机架构呢?好吧,我就不跟你说这些历史了。并不是说我是AMD或微软的粉丝。也许有一天,我们又会回到制造真正的计算机的时代。