Interrupt
如何調試 ksoftirqd 資源使用過多的原因?
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/6
CPU 使用率很高,則使用,否則指定另一個 CPU 核心。理論上,您也可以使用
perf top
,但有時使用 . 可以獲得更好/更準確的結果perf record
。