2014-09-13 5 views
2

tomcat에서 웹 응용 프로그램을 실행 중입니다. Tomcat 프로세스는 많은 요청이있을 때 매달리게됩니다. 이것은 프로덕션 웹 응용 프로그램이므로, 나는 항상 tomcat java 프로세스/스레드 덤프를 수동으로 가져올 수 없습니다.Tomcat 자동화하기 추가 분석을 위해 스레드/힙 덤프

는 이미 톰캣에 JMX 원격 포트를 활성화

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=2222 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true 내 질문은

: 톰캣 프로세스가 높은 CPU [스레드 수]/메모리 사용량에 도달하면/시간의 그 시점에서, 기형을 가지고 원하는 디스크 위치에 tomcat 스레드 덤프를 자동으로 수집 할 수 있습니까? [명령 줄 또는 프로그램 방식으로]?

+0

생산 시스템에'SSL = FALSE '와'jmx'? 잘 했어. –

+0

이것은 내가 지정한 jmx 포트를 여는 샘플 args입니다. – Ashoka

답변

0

This article은 자동 스레드 덤프를 예약하는 방법을 설명합니다. 나는보기 위해 제안한다.

0

이 옵션은 : 톰캣 메모리가 부족할 때

JAVA_OPTS='-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dir'

는 코어 덤프를 만들 것입니다.

또한이 경우 -verbose:gc 옵션이 유용 할 수 있습니다.

B.2.3은 -verbose : GC 옵션

-verbose:gc 옵션은 가비지 컬렉션 (GC) 정보의 기록을 가능하게한다. 다른 HotSpot VM 특정 옵션 (예 : -XX:+PrintGCDetails-XX:+PrintGCTimeStamps)과 결합하여 GC에 대한 정보를 에 추가로 얻을 수 있습니다. 정보 출력에는 의 크기와 각 GC 전후의 세대, 힙의 전체 크기, 승격 된 오브젝트의 크기 및 소요 시간이 포함됩니다.

Troubleshooting Guide for HotSpot VM > Command-Line Options