Linux lsirq 怎样筛选指定中断编号
lsirq没有把指定IRQ编号作为专用筛选参数的选项。可先用--output IRQ,TOTAL,NAME --noheadings固定输出列,再用awk精确匹配第一列。不要用整行grep数字,也不要把-i理解成中断编号:它表示输入文件。
官方项目地址:https://github.com/util-linux/util-linux
中断条目增多后,整行搜索容易选错
如果我要在中断条目较多的主机上只观察某个IRQ,我会先固定字段再筛选。这个选择解决的是定位信息的可靠性,不是减少内核中断,也不代表lsirq只从内核读取那一条记录。
整行搜索24可能命中IRQ 124,也可能命中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计数门槛 |
| 指定CPU | cpu-list计数范围 |
| 离线采集 | input读取兼容原始输入 |
筛选会把中断绑定到CPU吗?不会。这些示例只读和选择显示记录,不设置中断亲和性。
TOTAL能直接当每秒中断数吗?不能。一个计数快照不是速率;观察区间变化时要有两次采集及时间间隔,并考虑计数重置与目标变化。
为什么不用lsirq 24?手册语法是lsirq [options],没有文档化的IRQ位置参数;应使用字段过滤,不依赖未定义的位置参数行为。
Python statistics.kde 怎样按样本构造密度函数
- 上一篇
- Python statistics.kde 怎样按样本构造密度函数
- 下一篇
- Go go-mp3 解码后的Length为何不是MP3文件大小
-
- 文章 · linux | 31分钟前 |
- Linux lsirq 的总计数与各CPU计数怎样对应
- 410浏览 收藏
-
- 文章 · linux | 2小时前 |
- Linux lsfd 的文件描述符号与inode号有什么区别
- 494浏览 收藏
-
- 文章 · linux | 2小时前 |
- Linux lsfd 怎样按进程筛选打开的文件描述符
- 455浏览 收藏
-
- 文章 · linux | 3小时前 |
- Linux lastlog2 的数据库与传统lastlog文件有什么区别
- 303浏览 收藏
-
- 文章 · linux | 4小时前 |
- Linux lastlog2 怎样查询指定用户最近登录信息
- 434浏览 收藏
-
- 文章 · linux | 5小时前 | 命令行 · Linux · Linux util-linux utmpdump utmp wtmp
- Linux utmpdump 的逆向转换为何不宜直接覆盖原记录
- 470浏览 收藏
-
- 文章 · linux | 11小时前 |
- Linux lsmem 的汇总大小与单块地址范围有什么区别
- 296浏览 收藏
-
- 文章 · linux | 11小时前 |
- Linux lsmem 怎样选择内存块输出列
- 329浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 804次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 795次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 884次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 853次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 683次使用
-
- Linux vmstat 如何分辨内存抖动与磁盘等待:si、so、wa 与复测顺序
- 2026-08-30 501浏览
-
- Linux搭建vsftpdFTP服务器教程
- 2026-04-30 501浏览
-
- Shell脚本安装教程:.sh一键安装指南
- 2026-03-16 501浏览
-
- Linux清空文件内容的几种方法
- 2025-12-01 501浏览
-
- Linux命令行下载文件技巧
- 2025-11-23 501浏览

