문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:performance:threaddump [2018/03/06 13:47] kwon37xi |
java:performance:threaddump [2023/02/14 13:54] (현재) kwon37xi [dump 뜨기] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Java ThreadDump ====== | ====== Java ThreadDump ====== | ||
+ | * [[java: | ||
+ | * [[https:// | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
줄 8: | 줄 10: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | * [[https://java.net/projects/ | + | * [[https://github.com/sparameswaran/ |
- | ====== waiting 하고 있는 monitor가 있는데 어느 쓰레드가 해당 monitor를 locking 하고 있는지 정보가 없는 상황 | + | ===== dump 뜨기 ===== |
+ | <code sh> | ||
+ | # java process 확인 | ||
+ | jps | ||
+ | |||
+ | # jstack | ||
+ | jstack < | ||
+ | |||
+ | # jcmd | ||
+ | jcmd <PID> Thread.print | ||
+ | |||
+ | # kill -3 : process system.out 으로 출력된다. | ||
+ | kill -3 < | ||
+ | </ | ||
+ | * '' | ||
+ | < | ||
+ | -XX: | ||
+ | </ | ||
+ | ===== waiting 하고 있는 monitor가 있는데 어느 쓰레드가 해당 monitor를 locking 하고 있는지 정보가 없는 상황 | ||
* Thread Dump를 떴을 때 분명 '' | * Thread Dump를 떴을 때 분명 '' | ||
* TDA 가 출력한 내용에 따르면, | * TDA 가 출력한 내용에 따르면, | ||
줄 16: | 줄 36: | ||
* 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 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. | * 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 ===== | ||
줄 29: | 줄 49: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |