문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
java:performance:threaddump [2018/03/06 13:05] kwon37xi |
java:performance:threaddump [2023/02/14 13:52] kwon37xi |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Java ThreadDump ====== | ====== Java ThreadDump ====== | ||
- | * [[https://java.net/projects/threadlogic|ThreadLogic]] : 아직까지 보기엔 제일 나은 듯. 다중 쓰레드 덤프 못 읽는 문제 생긴 듯. | + | |
+ | | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | * [[https:// | + | * [[https:// |
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | ===== dump 뜨기 ===== | ||
+ | <code sh> | ||
+ | # java process 확인 | ||
+ | jps | ||
+ | |||
+ | # jstack | ||
+ | jstack <PID> | ||
+ | |||
+ | # jcmd | ||
+ | jcmd <PID> Thread.print | ||
+ | </ | ||
+ | |||
+ | ===== waiting 하고 있는 monitor가 있는데 어느 쓰레드가 해당 monitor를 locking 하고 있는지 정보가 없는 상황 | ||
+ | * Thread Dump를 떴을 때 분명 '' | ||
+ | * TDA 가 출력한 내용에 따르면, | ||
+ | * a VM Thread is holding it. | ||
+ | * This lock is a java.util.concurrent lock and the thread holding it is not reported in the stack tracebecause the JVM option -XX: | ||
+ | * This lock is a custom java.util.concurrent lock either not based off of AbstractOwnableSynchronizer or not setting the exclusive owner when a lock is granted. | ||
+ | * 일반적으로는 '' | ||
===== nid/tid ===== | ===== nid/tid ===== | ||
줄 19: | 줄 43: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |