Interrupt

如何調試 ksoftirqd 資源使用過多的原因?

  • May 8, 2021

man ksoftirqd 表示:

如果 ksoftirqd 佔用的 CPU 時間超過很小的百分比,這表明機器處於沉重的軟中斷負載下。

我正在使用 Debian Wheezy 系統,系統使用率普遍很高,其中 ksoftirqd 程序在短時間內使用過多的 cpu 和磁碟資源。在此期間,系統以蝸牛的速度執行。

怎樣才能開始理解這個 ksoftirqd 資源使用率峰值的根本原因是什麼?

檢查/proc/interrupts是否有一個或多個中斷過度發生。提示:每秒數千次中斷無需驚慌。

過多的中斷(又名中斷風暴)可能有多種原因,其中之一甚至是硬體問題(嘈雜的中斷線)。

要進一步回答您的問題,我們需要了解您使用的硬體上的作業系統。

除了監視/proc/interrupts和檢查與您所看到/proc/softirqs的非常活躍的 kthread 的親和性相匹配的 CPUx 列之外,您還可以通過短時間執行來更詳細地查看它。ksoftirqd/x``perf record

例子:

perf record -C 6 -g -- sleep 30
perf report

同樣,-C 6如果ksoftirqd/6CPU 使用率很高,則使用,否則指定另一個 CPU 核心。

理論上,您也可以使用perf top,但有時使用 . 可以獲得更好/更準確的結果perf record

引用自:https://unix.stackexchange.com/questions/235449