背景:软中断(softirq)也会导致CPU 使用率升高
中断概念:
中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调
用内核中的中断处理程序来响应设备的请求。
为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行
为了解决中断处理程序执行过长和中断丢失的问题,Linux 将中断处理过程分成了两个阶段,
也就是上半部和下半部:
上半部用来快速处理中断,它在中断禁止模式下运行,主要处理跟硬件紧密相关的或时
间敏感的工作。
下半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行。
上半部直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行;
而下半部则是由内核触发,也就是我们常说的软中断,特点是延迟执行。
1.查看对应CPU的软中断线程
软中断实际上是以内核线程的方式运行的,每个 CPU 都对应一个软中
断内核线程,这个软中断内核线程就叫做 ksoftirqd/CPU 编号
2.查看软中断和内核线程
2.1通过文件系统
/proc/softirqs 提供了软中断的运行情况;
TIMER(定时中断)、NET_RX(网络接收)、SCHED(内核调度)、RCU(RCU 锁)
/proc/interrupts 提供了硬中断的运行情况。
2.2工具
ps aux | grep softirq