Linux 中怎么查看系统中断次数排查硬件硬件中断瓶颈

胖浩吖_3714

胖浩吖_3714

2026-11-02

850人浏览

原创

直接看/proc/interrupts是最轻量可靠的起点,可获各IRQ在每核的触发次数及设备标识,但需结合smp_affinity_list查绑定CPU、trace-cmd抓单次handler耗时(>100μs需警惕)、/proc/stat看总量趋势三者对齐,才能准确定位硬件异常、驱动bug或配置失当。

linux 中怎么查看系统中断次数排查硬件硬件中断瓶颈

直接看 /proc/interrupts 是最有效、最轻量的起点,它能告诉你哪些设备在频繁打断 CPU,但单看总数容易误判——硬件异常、驱动 bug 或 NAPI 轮询关闭都可能让数值失真。

查中断触发次数:定位高频中断源

运行:

cat /proc/interrupts

每行首列为 IRQ 编号(如 42),后续各列对应 CPU0、CPU1… 的触发次数,末列为设备标识(如 eth0、nvme0n1、IO-APIC)。

  • 某一行数值持续暴涨,但无对应用户进程或网络/磁盘流量变化?大概率是硬件异常(如网卡丢包重试、PCIe 设备误报)或驱动缺陷
  • 虚拟化环境中看到 IR-PCI-MSI 或 IR-IO-APIC 前缀,说明启用了中断重映射,IRQ 编号已与物理引脚解耦,不能按传统编号理解
  • 某行全为 0 并不意味设备空闲——例如执行 ethtool -C eth0 rx off tx off 后,网卡可能切换至 NAPI 轮询模式,中断计数归零但流量照常

查中断绑定 CPU:确认是否“堵在一条道上”

运行:

grep eth0 /proc/interrupts | awk '{print $1}' | xargs -I{} sh -c 'echo {}:/proc/irq/{}/smp_affinity_list' | while read l; do echo "$l: $(cat ${l##*:} 2>/dev/null)"; done

或逐个查看:cat /proc/irq/42/smp_affinity_list(输出为十进制 CPU 编号,如 0,2,人眼可读且跨架构兼容)。

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 若某 IRQ 只绑定单个 CPU(如仅 CPU0),而该核 softirq 或 %irq 占用长期超 70%,就容易引发延迟抖动
  • 优先看 /proc/irq/42/effective_affinity,它反映当前实际生效的绑定;若与 smp_affinity_list 不一致,说明 irqbalance 或内核自动管理正在干预
  • 避免直接写 smp_affinity(十六进制掩码),x86 和 ARM 位宽不同,写错会导致中断完全不触发

抓单次中断耗时:识别长 handler 引发的抖动

/proc/interrupts 只给总量,卡顿和微秒级抖动必须看单次 handler 从入口到出口的真实耗时。

  • 先确认内核支持:grep CONFIG_IRQSOFF_TRACER /boot/config-$(uname -r) 返回 y 或 m
  • 录 5 秒数据:trace-cmd record -e irq:irq_handler_entry -e irq:irq_handler_exit -T 5
  • 分析时盯 delta 字段(单位纳秒),超过 100μs 就需警惕——比如驱动在中断上下文中 memcpy 大块数据、调用复杂锁逻辑等
  • 别用 perf record -e irq:*,它不保证入口/出口事件配对,采样精度也不足以支撑真实 handler 耗时计算

交叉验证趋势:结合 /proc/stat 看全局中断总量

运行:

grep intr /proc/stat

输出形如 intr 123456789 123456 123456 ...,首字段为所有中断总次数,后续为各 IRQ 计数(与 /proc/interrupts 对应)。

  • 对比多次采样差值,观察中断总量增长速率是否与业务节奏匹配;若突增却无负载变化,指向硬件或固件问题
  • 将 /proc/interrupts 高频 IRQ、smp_affinity_list 绑定关系、trace-cmd 中高 delta 值三者对齐,才能准确定位是硬件异常、驱动 bug 还是配置失当

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3332

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1096

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

969

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3056

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5772

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

887

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习