天天看點

13、系統裡有哪些軟中斷?

在 Linux 系統裡,我們可以通過檢視 ​

​/proc/softirqs​

​​ 的 内容來知曉「軟中斷」的運作情況,以及 ​

​/proc/interrupts​

​ 的 内容來知曉「硬中斷」的運作情況。

接下來,就來簡單的解析下 ​

​/proc/softirqs​

​ 檔案的内容,在我伺服器上檢視到的檔案内容如下:

13、系統裡有哪些軟中斷?

你可以看到,每一個 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​

​ 指令可以檢視到,下面這個就是在我的伺服器上查到軟中斷核心線程的結果:

繼續閱讀