13系统里有哪些软中断?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13系统里有哪些软中断?相关的知识,希望对你有一定的参考价值。
在 Linux 系统里,我们可以通过查看 /proc/softirqs
的 内容来知晓「软中断」的运行情况,以及 /proc/interrupts
的 内容来知晓「硬中断」的运行情况。
接下来,就来简单的解析下 /proc/softirqs
文件的内容,在我服务器上查看到的文件内容如下:
你可以看到,每一个 CPU 都有自己对应的不同类型软中断的累计运行次数,有 3 点需要注意下。
第一点,要注意第一列的内容,它是代表着软中断的类型,在我的系统里,软中断包括了 10 个类型,分别对应不同的工作类型,比如 NET_RX
表示网络接收中断,NET_TX
表示网络发送中断、TIMER
表示定时中断、RCU
表示 RCU 锁中断、SCHED
表示内核调度中断。
第二点,要注意同一种类型的软中断在不同 CPU 的分布情况,正常情况下,同一种中断在不同 CPU 上的累计次数相差不多,比如我的系统里,NET_RX
在 CPU0 、CPU1、CPU2、CPU3 上的中断次数基本是同一个数量级,相差不多。
第三点,这些数值是系统运行以来的累计中断次数,数值的大小没什么参考意义,但是系统的中断次数的变化速率才是我们要关注的,我们可以使用 watch -d cat /proc/softirqs
命令查看中断次数的变化速率。
前面提到过,软中断是以内核线程的方式执行的,我们可以用 ps
命令可以查看到,下面这个就是在我的服务器上查到软中断内核线程的结果:
可以发现,内核线程的名字外面都有有中括号,这说明 ps 无法获取它们的命令行参数,所以一般来说,名字在中括号里的都可以认为是内核线程。
而且,你可以看到有 4 个 ksoftirqd
内核线程,这是因为我这台服务器的 CPU 是 4 核心的,每个 CPU 核心都对应着一个内核线程。
以上是关于13系统里有哪些软中断?的主要内容,如果未能解决你的问题,请参考以下文章