과도한 ksoftirqd 리소스 사용의 원인을 디버깅하는 방법은 무엇입니까?

과도한 ksoftirqd 리소스 사용의 원인을 디버깅하는 방법은 무엇입니까?

남자 ksoftirqd 말한다:

ksoftirqd가 CPU 시간의 작은 비율 이상을 차지하는 경우 시스템은 과도한 Softirq 부하를 받고 있는 것입니다.

저는 Debian Wheezy 시스템을 사용하고 있으며 ksoftirqd 프로세스가 짧은 시간에 너무 많은 CPU와 디스크 리소스를 사용하여 시스템 활용도가 일반적으로 높습니다. 이 시간 동안 시스템은 달팽이 속도로 실행됩니다.

ksoftirqd 리소스 사용률 급증의 근본 원인이 무엇인지 이해하려면 어떻게 해야 합니까?

답변1

/proc/interrupts하나 이상의 인터럽트가 과도하게 발생하고 있는지 확인하십시오 . 팁: 초당 수천 개의 인터럽트는 경보의 원인이 되지 않습니다.

과도한 인터럽트(일명 인터럽트 폭풍)에는 여러 가지 원인이 있을 수 있으며, 그 중 하나는 하드웨어 문제(시끄러운 인터럽트 라인)일 수도 있습니다.

귀하의 질문에 추가로 답변하려면 귀하가 사용 중인 하드웨어의 운영 체제를 알아야 합니다.

답변2

눈에 보이는 매우 활동적인 kthread의 선호도와 일치하는 CPUx 열을 모니터링 /proc/interrupts하고 확인하는 것 외에도 잠시 실행해 보면 더 자세히 볼 수도 있습니다./proc/softirqsksoftirqd/xperf record

예:

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

-C 6마찬가지로 ksoftirqd/6CPU 사용량이 높으면 이를 사용하고, 그렇지 않으면 다른 CPU 코어를 지정하십시오.

이론적으로는 이를 사용할 수도 있지만 perf top때로는 를 사용하여 더 좋고/더 정확한 결과를 얻을 수 있습니다 perf record.

관련 정보