当前位置:首页 > 文章列表 > 文章 > linux > Linux lsirq 怎样筛选指定中断编号

Linux lsirq 怎样筛选指定中断编号

来源:17golang原创 2026-10-31 06:11:37 0浏览 收藏

lsirq没有把指定IRQ编号作为专用筛选参数的选项。可先用--output IRQ,TOTAL,NAME --noheadings固定输出列,再用awk精确匹配第一列。不要用整行grep数字,也不要把-i理解成中断编号:它表示输入文件。

官方项目地址:https://github.com/util-linux/util-linux

中断条目增多后,整行搜索容易选错

如果我要在中断条目较多的主机上只观察某个IRQ,我会先固定字段再筛选。这个选择解决的是定位信息的可靠性,不是减少内核中断,也不代表lsirq只从内核读取那一条记录。

整行搜索24可能命中IRQ 124,也可能命中TOTAL中的数字片段或NAME中的文字。输出越复杂,依赖“看起来匹配了”的人工判断越容易出错。这里把做法从整行搜索调整成字段选择;本文没有实际运行这些命令,也不把示例描述为线上优化成果。

IRQ标识、TOTAL计数与NAME说明的字段关系
IRQ标识、TOTAL计数与NAME说明的字段关系,原创静态结构说明图,不是终端截图。

第一张图中lsirq记录包含IRQ标识、TOTAL计数与NAME说明;输出列清单确定它们的显示位置,选择条件只关联IRQ标识。计数和名称不参与编号判断。

固定列顺序,再精确匹配IRQ

下面脚本使用Bash和awk。目标编号24只是占位示例,请换成主机上已有的IRQ。脚本先保存一次lsirq输出,只有命令成功才做匹配,这样不会把读取错误当成空结果。

#!/usr/bin/env bash
set -euo pipefail

# 24只是示例IRQ编号,应替换为目标主机实际存在的编号。
irq=24
snapshot=$(mktemp)
trap 'rm -f "$snapshot"' EXIT

# 先确认lsirq成功,避免把工具错误误当成“没有匹配项”。
if ! LC_ALL=C lsirq --noheadings --output IRQ,TOTAL,NAME > "$snapshot"; then
    echo "lsirq读取失败,请检查命令、选项与输入权限" >&2
    exit 1
fi

# 第一列固定为IRQ;加字符串前缀,按编号原文精确比较。
awk -v irq="$irq" '("x" $1) == ("x" irq) { print }' "$snapshot"

--output明确列顺序,所以awk的第一列才有稳定含义;--noheadings去掉标题行。字符串前缀x让比较按原文进行,避免编号文本被隐式转成数值后产生意料外的等价关系。NAME可以含空格,脚本只比较第一列,并原样打印整行。

临时文件由mktemp创建,退出时用trap清理。不要用生产业务文件充当临时输出。这里没有修改IRQ配置,也不要求为了查看而先切换CPU亲和性。

多个编号与离线输入怎样组织

要观察一组IRQ,我更愿意保留一份相同采集时点的表格,再做集合成员判断,避免每个编号都运行一次lsirq。下面片段应放在上面脚本末尾、退出清理之前:

# 在上一段脚本取得的同一份snapshot上筛选,24、31仅为示例编号。
awk 'BEGIN { wanted["24"]=1; wanted["31"]=1 }
     ($1 in wanted) { print }' "$snapshot"

数组wanted只允许列出的编号命中。它不会把24理解为任意位置包含24,也不会因为某条计数中出现31而选中该条目。没有命中时awk可以正常退出,所以退出码本身不能证明找到了目标。

采集表格、编号集合与选中记录的静态关系
采集表格、编号集合与选中记录的静态关系,原创静态结构说明图,不是终端截图。

第二张图将采集表格与选择规则分开:第一列IRQ与编号集合关联,匹配记录保留原始行;这与更改设备中断路由没有关系。

若需要从采集文件重现查看,lsirq提供--input。输入应是兼容的内核中断采集格式,不能把上一段临时表格直接重新作为--input。发行版版本有差异时,先阅读本机帮助:

# 查看本机选项与列支持,不假定所有发行版打包版本相同。
lsirq --version
lsirq --help

# interrupts.capture须为兼容的/proc/interrupts采集文本,不是lsirq表格输出。
LC_ALL=C lsirq --input interrupts.capture --noheadings --output IRQ,TOTAL,NAME

筛选为空时应检查哪些边界

先确认lsirq本身运行成功,再检查目标编号是否存在于该输入、第一列是否确为IRQ,以及条目是否被其他选项排除。上游实现有默认阈值处理,零计数条目可能不在展示结果中,因此“未显示”不能直接等价成“内核没有该IRQ”。

--threshold筛计数门槛,--cpu-list限定计数观察的CPU范围,--sort决定排序,它们都不是按IRQ编号选择的替代品。尤其--cpu-list是CPU列表,不是中断列表。

--softirq切换到软中断信息,类别通常是名称标识;不要把硬中断数字编号直接套过去。这里的数字IRQ示例针对普通中断视图。系统重启、设备重配后,也不要默认编号始终不变,应该同时结合NAME识别目标。

若本机提示未知列或未知选项,依据本机--help调整,而不是修改awk去猜测不确定的默认列。想保留表头用于人读,可以另加说明行;机器处理仍应维持明确列契约。

把筛选结果接入后续观察

我的取舍是让采集、字段解释和选择规则各有边界:lsirq负责展示内核计数,awk负责选记录,业务观察再解释变化。这样更容易区分“工具失败”“目标没显示”和“目标计数没有变化”,但不会让一次静态计数自动成为性能诊断结论。

任务应使用的条件
指定IRQ固定首列后精确比较
多个IRQ编号集合成员判断
较高计数threshold计数门槛
指定CPUcpu-list计数范围
离线采集input读取兼容原始输入

筛选会把中断绑定到CPU吗?不会。这些示例只读和选择显示记录,不设置中断亲和性。

TOTAL能直接当每秒中断数吗?不能。一个计数快照不是速率;观察区间变化时要有两次采集及时间间隔,并考虑计数重置与目标变化。

为什么不用lsirq 24?手册语法是lsirq [options],没有文档化的IRQ位置参数;应使用字段过滤,不依赖未定义的位置参数行为。

参考:上游lsirq手册、util-linux维护仓库源码。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Python statistics.kde 怎样按样本构造密度函数Python statistics.kde 怎样按样本构造密度函数
上一篇
Python statistics.kde 怎样按样本构造密度函数
Go go-mp3 解码后的Length为何不是MP3文件大小
下一篇
Go go-mp3 解码后的Length为何不是MP3文件大小
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    804次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    795次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    884次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    853次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    683次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码