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

in #kr7 years ago

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

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

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

!runaway

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

이상황에서 windbg에서 !runaway를 실행하였다.

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

Sort:  

개발자의 삶은 정말 대단한거 같습니다.
보내주신 스달 잘 받았습니다~
아이들에게 도움을 주셔서 진심으로 감사합니다!

Congratulations @kochun! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @kochun! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.14
TRX 0.12
JST 0.025
BTC 53375.38
ETH 2393.56
USDT 1.00
SBD 2.15