2017-03-27 3 views
0

테스트를 위해 tomcat 7.0.55에 애플리케이션을 배포했습니다. "HeapDumpOnOutOfMemoryError"의 발생 여부를 캡처하고 싶습니다. 다음은 내 JVM 매개 변수입니다.투구 방법 HeapDumpOnOutOfMemoryError

의 JAVA_OPTS = "- 서버 -Xms512m -Xmx2048m -XX : PermSize = 256m -XX :를 MaxPermSize = 512m -XX : + UseConcMarkSweepGC -XX : + UseParNewGC -XX : 위해 ThreadStackSize = 512 - XX : + HeapDumpOnOutOfMemoryError -XX : HeapDumpPath =/apps/dumps/"

디렉토리 아래에 파일이 표시되지 않습니다. 디렉토리 아래에 파일을 만들지 아니면 추가 할 파일을 수동으로 만들어야합니까?

+0

당신이 OOM에 발생되는 예외를 테스트 하시겠습니까? 그렇다면, 어떻게 든 OOM을 얻으려면 VM을 가져와야한다고 가정합니다. heapDump가 발생하고 지정한 위치에 스토리를 씁니다. '-XX : ErrorFile = whatever.file'을 지정하여 OOM과 관련된 파일 이름을 지정할 수도 있습니다 – vegaasen

답변

0

당신은 다음과 같이 사용할 수 있습니다 :

-XX : + HeapDumpOnOutOfMemoryError -XX : HeapDumpPath =

당신은 또한 수동 프로세스 ID 알고있는 경우 jmap는을 사용하여 메모리 맵 생성 할 수 있습니다

을 jmap -J-d64 -dump : format = b, file =

JHat을 사용하여 덤프를 분석 할 수 있습니다.

jhat "덤프 파일 경로".

기본적으로 힙 덤프는 위 예제와 같이 VM의 작업 디렉토리에있는 java_pid.hprof 파일에 만들어집니다. -XX : HeapDumpPath = 옵션을 사용하여 대체 파일 이름 또는 디렉토리를 지정할 수 있습니다. 예를 들어, -XX : HeapDumpPath =/disk2/dumps는/disk2/dumps 디렉토리에서 힙 덤프를 생성합니다.