统信uos系统偶发卡顿、鼠标延迟或定时失准时,需排查irq中断堆积——该负载不体现于cpu使用率但抢占内核时间片;可通过cat /proc/interrupts观察中断分布、mpstat -i all 1 3查看%intr占比,并用watch、grep+awk等方法定位高触发中断源。

当统信UOS系统出现偶发性卡顿、鼠标延迟或高精度定时任务失准时,需排查硬件中断(IRQ)是否堆积——这类负载不会体现在CPU使用率中,但会抢占内核时间片,直接干扰实时响应。中断负载过高常见于网卡、USB控制器或老旧显卡驱动异常触发。
用/proc/interrupts查看各中断源触发次数
该文件记录自系统启动以来每个中断号(IRQ)被触发的总次数,是判断中断活跃度的原始依据。
在终端中执行:cat /proc/interrupts。
观察输出表格:第一列为IRQ编号,后续每列对应一个CPU核心,数值越大表示该中断在对应核心上被处理得越频繁;若某一行数值远高于其他行(如相差10倍以上),说明该设备中断高度集中于单核,可能引发调度不均。
重点关注以eth(网卡)、usb(USB控制器)、nvme(NVMe磁盘)或gpu开头的行名,这些是常见高频率中断来源。
用mpstat -I ALL查看每秒中断次数统计
mpstat可将中断(INTR)作为独立CPU时间维度量化,比单纯看计数更直观反映实时压力。
第一步:确认sysstat已安装,执行sudo apt install sysstat(若提示已存在则跳过)。
第二步:运行命令mpstat -I ALL 1 3,表示每秒采样一次,共采集3次。
第三步:查看输出中%intr列——该值代表CPU时间花在处理中断上的百分比;若持续高于15%,且伴随%idle大幅下降,说明中断处理已构成显著开销。
【注意:该值为所有CPU核心平均值,不能反映单核饱和】
定位具体高触发中断号的方法
方法一:对比两次采样差值找出激增中断
执行watch -n 1 'cat /proc/interrupts | grep -E "^[0-9]"',观察1秒内哪些IRQ行数值跳变最剧烈;跳变值超过5000/秒即属异常高频。
方法二:按CPU核心过滤定位热点
执行grep -A1 "CPU0" /proc/interrupts | tail -n +2 | awk '{sum+=$2} END{print sum}',可计算CPU0处理的所有中断总次数;替换CPU0为CPU1等可横向对比负载分布。
方法三:关联设备名称快速识别
执行cat /proc/interrupts | awk '$1 ~ /^[0-9]+:/ && $NF != "NMI" {print $1, $NF}' | column -t,该命令提取每行最后一列(通常是设备别名),便于直接对应到物理设备。











