4

如何解决「系统中断」造成的CPU使用率过高

 3 years ago
source link: https://www.sysgeek.cn/fix-high-cpu-usage-system-interrupts/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

fix-high-cpu-usage-system-interrupts-1

如果你发现 Windows 任务管理器中的「系统中断」CPU 使用率非常高,这表明你的操作系统正遇到硬件或驱动程序方面的相关问题。本文我将向大家解析什么是「系统中断」,以及如何发现并解决由「系统中断」造成 Windows CPU 使用率高的根本原因。

何为「系统中断」

虽然「系统中断」与其它 Windows 进程一样出现在任务管理器中,但它却不是一个真正意义上的进程,它仅代表 Windows 中较低系统级别的所有「中断」的 CPU 使用率。

fix-high-cpu-usage-system-interrupts-2

中断可来自软件、硬件,甚至处理器本身,Wikipedia 对系统中断的专业解释如下:

在计算机科学中,中断是指处理器接收到来自硬件或软件的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。

通常,在接收到来自外围硬件(相对于中央处理器和内存)的异步信号,或来自软件的同步信号之后,处理器将会进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器通过一个运行信息切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种运行信息切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是即时系统中尤为有用。这样的系统,包括运行于其上的操作系统,也被称为「中断驱动的」(interrupt-driven)。

简单地来理解,中断是软件、硬件和 CPU 之间进行通信的一种形式,例如:当你在键盘上执行输入操作时,相应的硬件和软件便会向 CPU 发送中断以通报任务并触发必要的处理。在中断处理程序任务完成后,处理器便会恢复到它被中断时的状态。

打开 Windows 任务管理器,盯着「系统中断」的 CPU 使用率,狂敲一通键盘,观察 CPU 占用率的变化即可验证上述说法,你的理解也会加深。

当硬件或驱动程序出现错误时,可导致向 CPU 发送错误的中断信号,就会造成在任务管理器里看到「系统中断」的 CPU 使用率过高的问题。通常一个健康、运行良好的 Windows 系统,系统中断的 CPU 使用率大约会在 0.1% 至 2% 之间浮动,峰值不超过 7% 也被认为在可接受的正常范围,当然这也取决于你所使用的 CPU 频率、运行的软件和所连接的相关硬件。

解决「系统中断」CPU使用率高

如果系统中断对 CPU 的占用长期超过 5% – 10%,就可以怀疑当前系统涉及驱动程序或硬件问题。如果该问题不是长时间出现的普遍现象,可以先尝试重启操作系统进行解决。

1. 检查硬件驱动

要想快速确认是否由驱动程序造成的问题,可以使用 DPC Latency Checker 这个小工具进行检查。延迟过程调用(DPC)与系统中断的处理相关, 当中断处理程序需要延迟一个低优先级的任务时,便会调用 DPC。

DPC Latency Checker 可以通过实时音、视频流来分析当前系统是否能妥善处理内核态设备驱动的延迟,它是快速找出驱动问题的好帮手,而且无需安装,如果你看到出现红条则表示有高延迟。

fix-high-cpu-usage-system-interrupts-3

要找到驱动程序中断问题的根源,你得逐个回滚或更新驱动程序到最新版本,并不断通过 DPC Latency Checker 进行测试。此外,大家也可以安装 LatencyMon 这款延时监控软件,以帮助快速发现高 DPC 计数的驱动程序文件。

具有高 DPC 计数的驱动可能导致大量中断。

2. 禁用硬件设备

在不更新驱动的情况下,我们也可以通过逐个禁用硬件设备的「排除法」来快速定位问题硬件或驱动。

使用 Windows + R 打开「运行」— 执行 devmgmt.msc 打开设备管理器,对硬件进行逐个禁用并在 DPC Latency Checker 或任务管理器中观察「系统中断」的情况,进行逐一排除。

可能出问题的硬件主要有:

  • 内置调制解调器
  • 内置声卡设备
  • 其它外置设备,如电视调谐卡、ISDN 或 DSL 适配器等

千万不要在设备管理器里禁用或卸载系统必要的设备和驱动程序哦,如果连处理器、显示适配器、IDE 控制器或显示器等必需品都禁掉,麻烦可就大了。

3. 拔下或禁用外设

如果 DPC Latency Checker 什么都没发现,那问题很可能是由 USB 硬件造成的。此时,大家可以尝试拔除所有外设的连接或在设备管理器中尝试禁用「通用串行总线控制器」中的所有「USB Root Hub」

fix-high-cpu-usage-system-interrupts-5

如果你在使用外部键盘或 USB(蓝牙)鼠标,禁用 USB Root Hub 之后会停止工作,在此之前一定要确保有办法让这些设备再驱动起来哦!

4. 排除硬件故障

驱动能导致系统中断问题,硬件物理故障就更是如此了。在此种情况下,随你怎么换驱动都无法解决问题,所以必需要对损坏的部件检测后进行更换。

硬件故障的检测不在本文范围内,在此只提醒大家,有故障的电源或移动电源也可能会造成中断问题,在排除硬件故障时建议先确保电源正常。

5. 禁用音效

如果「系统中断」造成的 CPU 使用率过高的是 Windows 7 PC,还需要先排除是由系统音效造成的问题。大家可以先点击任务栏中的喇叭图标,在播放设备属性配置中禁用所有音效看看。

6. 更新主板BIOS

BIOS 是系统开机时驱动硬件的首要模块,此后才会将硬件控制权交给操作系统,所以在排除中断问题时应当先去 PC 厂商看看有没可更新的 BIOS 版本,一般 BIOS 版本的更新都可以解决很多设备底层的驱动 Bug 和问题。

如下两条命令可以帮助我们快速查看当前 PC 的 BIOS 版本:

  1. systeminfo | findstr /I /c:bios
  2. wmic bios get manufacturer, smbiosbiosversion

fix-high-cpu-usage-system-interrupts-6

刷 BIOS 必需务必小心,千万要版本正确并不能设备断电,更新 BIOS 的风险请各位自担哦!!!

以上只是解决 Windows 「系统中断」问题的一般步骤和方面,对于不同场景下的系统中断问题可能会非常棘手,大家自求多福吧^_^!!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK