观察软中断的变化

观察软中断的变化

Content #

观察 /proc/softirqs 文件的内容,就能知道各种软中断类型的次数。

不过,这里的各类软中断次数,是系统运行以来的累积中断次数。所以我们直接查看文件内容,得到的只是累积中断次数。

那什么工具可以观察命令输出的变化情况呢?就是watch 命令,就可以定期运行一个命令来查看输出;如果再加上 -d 参数,还可以高亮出变化的部分,从高亮部分我们就可以直观看出,哪些内容变化得更快。

$ watch -d cat /proc/softirqs
                    CPU0       CPU1
          HI:          0          0
       TIMER:    1083906    2368646
      NET_TX:         53          9
      NET_RX:    1550643    1916776
       BLOCK:          0          0
    IRQ_POLL:          0          0
     TASKLET:     333637       3930
       SCHED:     963675    2293171
     HRTIMER:          0          0
         RCU:    1542111    1590625

通过 /proc/softirqs 文件内容的变化情况,可以发现, TIMER(定时中断)、 NET_RX(网络接收)、SCHED(内核调度)、RCU(RCU 锁)等这几个软中断都在不停变化。

其中,NET_RX,也就是网络数据包接收软中断的变化速率最快。而其他几种类型的软中断,是保证 Linux 调度、时钟和临界区保护这些正常工作所必需的,所以它们有一定的变化倒是正常的。

Viewpoints #

From #

10 | 案例篇:系统的软中断CPU使用率升高,我该怎么办?