2013-02-12 1 views
0

Linux 컴퓨터에서 Tomcat 서버와 함께 "OutOfMemoryError : GC 오버 헤드 한도 초과"가 발생합니다. Java 애플리케이션의 어떤 프로그램이 많은 메모리를 소비하는지 분석하는 데 도움이되는 도구가 있는지 알려주십시오. Tomcat 서버가이 오류로 어디에서 실패했는지 알 수있는 정보를 제공하는 디버깅 도구가 있습니까? 사전에OutOfMemoryError 받기 : Linux 컴퓨터의 Tomcat 서버에서 GC 오버로드 제한 초과

감사합니다.

+1

JDK에는 'jvisualvm'과 같은 도구가 함께 제공됩니다. –

+0

유용한 지 확인하십시오 http://stackoverflow.com/questions/14762/please-recommend-a-java-profiler – sundar

+0

Linux에서 명령을 실행할 때 cmmand 오류를 찾을 수 없습니다 :'-bash-3.2 $ jvisualvm -bash : jvisualvm : 명령을 찾을 수 없습니다. ' – Chaitanya

답변

2

OOM에서 힙 덤프를 만들려면 명령 줄 매개 변수 -XX : + HeapDumpOnOutOfMemoryError를 설정해야합니다. 또한 유용 할 수 있습니다 : -XX : HeapDumpPath = < 힙 덤프 폴더>.

OOM이 발생하면 MAT으로 힙 덤프를 분석 할 수 있습니다. 힙 덤프를 분석하는 데 매우 유용한 도구입니다.

또한 jmap을 사용하여 수동으로 힙 덤프를 만들 수 있습니다. 예 : jmap -dump:file=<output-filename> <java process id>

+0

답변 해 주셔서 감사합니다. processid를 입력으로 전달하여 jmap 명령을 실행하면 오류가 발생합니다. 이 문제를 해결하는 방법을 알려주십시오 :'-bash-3.2 $ jmap 10865 프로세스 ID 10865에 첨부 중입니다 ... 스레드 "main"의 예외 java.lang.reflect.InvocationTargetException 원인 : sun.jvm.hotspot .runtime.VMVersionMismatchException : 지원되는 버전은 20.0-b11입니다. 타겟 VM은 14.3-b01 – Chaitanya

+0

@ user2065083 여기 http://java-monitor.com/forum/showthread.php?t=974 몇 가지 방법으로 문제를 해결하는 방법입니다. Java 버전과 동일한 jmap을 실행해야합니다. 힙 덤프를 취합니다. – Taky

관련 문제