過剰なksoftirqdリソースの使用の原因をデバッグする方法は?

過剰なksoftirqdリソースの使用の原因をデバッグする方法は?

男ksoftirqdは言う:

ksoftirqdがCPU時間のわずかな割合を占める場合、システムは過度のSoftirq負荷を受けています。

私はDebian Wheezyシステムを使用していますが、ksoftirqdプロセスが短時間でCPUやディスクリソースが多すぎるため、システムの使用率は一般的に高くなります。この間、システムはカタツムリの速度で実行されます。

ksoftirqdリソース使用率の急増の根本原因が何であるかを理解するにはどうすればよいですか?

答え1

/proc/interrupts1つ以上の割り込みが過度に発生していることを確認してください。ヒント:毎秒数千の割り込みはアラームの原因になりません。

過度の割り込み(別名割り込み嵐)にはいくつかの原因があり、そのうちの1つはハードウェアの問題(騒々しい割り込みライン)です。

あなたの質問にさらに答えるには、あなたが使用しているハードウェアのオペレーティングシステムを知る必要があります。

答え2

目に見える非常にアクティブなkthreadの好みに一致するCPUx列を監視し/proc/interruptsて確認することに加えて、しばらく実行してみるとさらに詳しく見ることができます。/proc/softirqsksoftirqd/xperf record

例:

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

-C 6同様にksoftirqd/6、CPU使用率が高い場合はそれを使用し、そうでない場合は別のCPUコアを指定してください。

理論的にはこれを使用することもできますが、perf top時にはを使用してより良い/より正確な結果を得ることができますperf record

関連情報