如何调试ksoftirqd资源使用过多的原因?

如何调试ksoftirqd资源使用过多的原因?

man ksoftirqd 表示:

如果 ksoftirqd 占用的 CPU 时间超过一小部分,则表明机器处于较重的软中断负载之下。

我正在使用 Debian Wheezy 系统,系统利用率普遍较高,其中 ksoftirqd 进程在短时间内使用过多的 cpu 和磁盘资源。在此期间,系统以蜗牛般的速度运行。

如何开始了解 ksoftirqd 资源利用率激增的根本原因是什么?

答案1

检查/proc/interrupts一个或多个中断是否过度发生。提示:每秒数千次中断无需引起恐慌。

过多的中断(又名中断风暴)可能有多种原因,其中之一甚至是硬件问题(嘈杂的中断线)。

为了进一步回答您的问题,我们需要知道您使用的硬件上的操作系统。

答案2

除了监视/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

相关内容