系统中断占用cpu过高

系统中断占用cpu过高

系统中断占用 CPU 过高可能由多种原因导致,以下是一些常见的原因及解决方法:

Windows 系统


  • 硬件设备问题
    • USB 设备:USB 硬件常常是导致系统中断问题的主要原因之一。可以尝试拔掉所有 USB 外设,或者在 “设备管理器” 中禁用 “通用串行总线控制器” 下的所有 “USB 根集线器” 条目。需要注意的是,若使用外接 USB 鼠标和键盘,需确保有其他方式来重新启用设备,如使用 PS/2 接口的键盘鼠标。
    • 其他硬件:检查是否有未使用的 SATA 线缆插入主板并将其移除,因为这些线缆也可能引起中断。还需逐一检查硬件,特别是电源和笔记本电脑充电器,尝试更换或拔下它们以查看问题是否解决。

  • 驱动程序问题:故障硬件驱动程序可能导致系统中断。可右键单击 Windows 开始菜单并从弹出菜单中选择 “设置”,再选择 “更新和安全”,找到 “Windows 更新” 部分,检查是否有可用的硬件驱动程序更新,如有则单击 “下一步” 更新所有这些驱动。
  • 网络适配器设置:网卡在传输数据时有唤醒计算机的权限,这可能会产生大量中断导致 CPU 使用率过高。可右键单击 Windows 开始菜单,选择 “设备管理器”,展开 “网络适配器” 对话框,右键单击网络适配器并选择 “属性”,切换到 “高级” 选项卡,在属性下找到 “Wake on Magic Packet” 和 “Wake on Pattern Match”,从下拉菜单中将其值一一设置为 “禁用”。
  • 快速启动功能:Windows 10 的快速启动功能可能会导致系统中断占用 CPU 过高。可在控制面板中点击 “电源选项”,选择 “更改当前不可用的设置”,在屏幕底部取消选中 “打开快速启动” 旁边的框.
  • 鼠标唤醒功能:在设备管理器里找到鼠标,右键选择 “属性”,在 “电源管理” 中,将 “允许此设备唤醒计算机” 前面的勾去掉,即不让鼠标唤醒休眠中的电脑.

Linux 系统


  • 软中断问题
    • 查看软中断情况:使用 top 命令查看系统整体资源使用情况,关注 si 列,即 CPU 在软中断上的使用率。还可以使用 watch -d cat /proc/softirqs 命令查看每个软中断类型的中断次数的变化速率,以确定哪种软中断类型导致 CPU 使用率过高,一般对于网络 I/O 比较高的 Web 服务器,NET_RX 网络接收中断的变化速率相比其他中断类型快很多。
    • 分析网络包接收情况:若发现 NET_RX 网络接收中断次数的变化速率过快,可使用 sar -n DEV 查看网卡的网络包接收速率情况,然后分析是哪个网卡有大量的网络包进来。接着通过 tcpdump 抓包,分析这些包的来源,若为非法地址,考虑加防火墙;若是正常流量,则考虑硬件升级等。

  • 中断负载不均衡:当多个模块一起运行时,可能会出现中断负载不均衡的情况,导致某个 CPU 上的中断进程负荷过高。可查看 /proc/interrupts 文件,找到中断号对应的文件目录,修改 smp_affinity,将中断指定到其他 CPU 上,以均衡中断负载.

系统中断占用cpu过高

看过该文章的人还看了