当我将嵌入英特尔显卡的联想笔记本电脑连接到驱动所有显示器的 eGPU 底座(Nvidia)时,CPU 使用率仍然很高,内核(“系统”)始终消耗超过 8% 的 CPU。
使用procexp
查看内核线程,我可以看到许多同时调用PoFxReportDevicePoweredOn
,这让我怀疑驱动程序有问题。不过,我猜测要禁用随机驱动程序,但并没有找到问题所在。
我如何才能找到行为异常的驱动程序?
答案1
您可以xperf
使用以下方式运行跟踪来捕获驱动器电源事件:
C:\> xperf.exe -start power_session -on Microsoft-Windows-Kernel-Power
C:\> timeout 15
C:\> xperf.exe -stop power_session
C:\> xperf.exe -i c:\user.etl > c:\power_log.txt
C:\> start c:\power_log.txt
在日志中搜索以(开头Microsoft-Windows-Kernel-Power/Irp/win:Start
和结尾的行0
代表向D0
电源状态的转换)。无论呼叫什么,PoFxReportDevicePoweredOn
都会列出其设备路径。
Microsoft-Windows-Kernel-Power/Irp/win:Start, TimeStamp, Process Name ( PID), ThreadID, CPU, etw:ActivityId, etw:Related ActivityId, etw:UserSid, etw:SessionId, Irp, PowerStateType, MinorFunction, TargetDevice, InstanceNameLength, InstanceName, PowerState
Microsoft-Windows-Kernel-Power/Irp/win:Start, 15417, "Unknown" ( 4), 20, 2, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 0
Microsoft-Windows-Kernel-Power/Irp/win:Start, 93924, "Unknown" ( 4), 660, 1, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 3
Microsoft-Windows-Kernel-Power/Irp/win:Start, 442694, "Unknown" ( 4), 20, 0, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 0
Microsoft-Windows-Kernel-Power/Irp/win:Start, 506018, "Unknown" ( 4), 660, 0, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 3
Microsoft-Windows-Kernel-Power/Irp/win:Start, 856490, "Unknown" ( 4), 20, 3, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 0
Microsoft-Windows-Kernel-Power/Irp/win:Start, 934942, "Unknown" ( 4), 660, 0, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 3
Microsoft-Windows-Kernel-Power/Irp/win:Start, 1296908, "Unknown" ( 4), 20, 6, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 0
Microsoft-Windows-Kernel-Power/Irp/win:Start, 1377503, "Unknown" ( 4), 660, 0, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 3
Microsoft-Windows-Kernel-Power/Irp/win:Start, 1724611, "Unknown" ( 4), 20, 3, , , , , 0xffffaa0804fb1c20, 1, 2, 0xffffaa07fd742ca0, 60, "PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10", 0
您可以使用以下命令获取设备的描述Get-PnPDevice
:
PS C:\WINDOWS\system32> Get-PnPDevice 'PCI\VEN_8086&DEV_5917&SUBSYS_225917AA&REV_07\3&11583659&0&10'
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK Display Intel(R) UHD Graphics 620 PCI\VEN_...
就我而言,罪魁祸首是“Intel(R) UHD Graphics 620”,它在 D3(睡眠)和 D0(开机)之间快速转换。由于 eGPU 正在驱动所有显示器,因此我在设备管理器中禁用了 Intel 图形驱动程序,问题就解决了。
答案2
我遇到了同样的问题,通过以下解决方法解决了该问题:
在 NVIDIA 控制面板的管理 3D 设置下,配置您通常运行的应用程序之一以使用 NVIDIA GPU。
这将阻止 GPU 切换到省电模式并永久唤醒。
我在这个帖子中找到了解决方法: https://answers.microsoft.com/en-us/windows/forum/all/high-cpu-usage-by-process-called-system/0714de1f-8ee6-4b5a-928e-1f1989e12414