Linux性能优化-软中断
Linux将中断处理分为了2个阶段:
1.上半部直接处理硬件请求(硬中断),快速处理中断,主要处理跟硬件相关或是时间敏感的工作。
2.下半部则是内核触发(软中断)用来延迟处理上半部未完成的任务,通常以内核线程的方式运行。
这里可以用取外卖举个例子:
上半部分:接听电话,沟通送餐地址,发票或者其他事情等见面再说。
下半部分:取外卖、处理发票等事情。
查看软中断和内核线程
- /proc/softirqs 提供了软中断的运行情况;
- /proc/interrupts 提供了硬中断的运行情况。
查看各种类型的软中断在cpu上的运行次数
$ cat /proc/softirqs
CPU0 CPU1
HI: 0 0
TIMER: 811613 1972736
NET_TX: 49 7
NET_RX: 1136736 1506885
BLOCK: 0 0
IRQ_POLL: 0 0
TASKLET: 304787 3691
SCHED: 689718 1897539
HRTIMER: 0 0
RCU: 1330771 1354737
软中断是以内核线程的方式运行的,每个cpu会对应一个软中断内核线程,这个软中断内核线程叫做ksoftirqd/CPU编号:
ps aux | grep softirq
root 7 0.0 0.0 0 0 ? S Oct10 0:01 [ksoftirqd/0]
root 16 0.0 0.0 0 0 ? S Oct10 0:01 [ksoftirqd/1]
ps的输出中,名字在中括号里的,一般都是内核线程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)