스레드 덤프를 가져 오는 방법 간의 차이점을 분석하고 있습니다. 다음은 그 중 몇은 내가 선언 콩 작업을 클릭에() Runtime.exec의를 통해 jstack을 트리거하는 JMX 빈을 정의프로덕션에서 스레드 덤프 사용
에 연구하고있다.
사전 정의 된 간격 후에 "ManagementFactory.getThreadMXBean(). dumpAllThreads (true, true)"를 반복적으로 실행하는 데몬 스레드입니다.
둘 사이의 스레드 덤프 출력을 비교하면, I는
- 스레드 덤프와 아래 단점 참조 출력에는 높은 CPU 문제를 분석하는 데 유용한 기본 스레드 ID가 포함되어 있지 않습니다 (맞습니까?)
- 더 이상 없습니까?
에 대한 제안/입력을 얻기 위해 감사하겠습니다
? 다양한 운영 체제 (Windows, Linux)상의 호환성 문제?
스레드 덤프를 취하는 다른 방법은 없습니까?
감사합니다.
는편집 -
1과 2의 결합 방법은 갈 수있는 방법이 될 것으로 보인다. 백그라운드에서 실행되는 전용 스레드를 가지고 스레드 덤프를 스레드 덤프 분석기에서 이해할 수있는 형식으로 로그 파일에 인쇄 할 수 있습니다. jstack 출력에 의해서만 기록되는 추가 정보가 필요할 경우 (예 : 원시 스레드 ID와 같음) 필요한 경우 수동으로 수행합니다.
JEE 애플리케이션과 관련이 있습니까? –
@WaleedMadanat 예 –