최신목록

2016년 8월 19일 금요일

[WinDbg]윈도우 프로세스의 스레드별 cpu 사용량 확인

개발자로 생활한지는 꾀 됬는데..
cpu 100치는 현상은 항상 당황스럽다..
개발시 나오면 찾기 쉬우나 사이트에서 일어나는 현상이면..ㅠ
사실 생각보다 많이 당해보진 않았다. ㅎ
이런 현상 발생하면 큰일난다 ㅋㅋ 서버보안을 담당중이라..

여튼 프로세스가 100치는것 까진 쉽게 알아낼 수 있다 . 작업관리자만 봐도..
process explorer를 봐도..
하지만 어느 스레드때문에 발생하는건지는 스레드마다 호출스택 다 뒤져서 확인하는 수밖에 없는줄 알았다....

근데 windbg의 무한한 기능중에 좋은 기능이 있어 소개한다.

>!runaway

아래와 같은 스레드를 두개를 돌리는 프로세스를 windbg로 실행시켰다. 물론 cpu는 ThreadFunc 스레드에 의해서 100을 쳤다.




이상황에서 windbg에서 !runaway를 실행하였다.
스레드에 대한 cpu 점유 시간을 보여주고 잇다. cpu 점유시간이 제일 높은 스레드가 cpu 사용량이 많은 스레드이므로 위에서는 1번 스레드임을 알수 있다. 1번 스레드의 콜스택을 살펴보니 역시 ThreadFunc이 있음을 확인할 수 있다.^^

댓글 없음:

댓글 쓰기