OutOfMemoryExceptions
을 throw하면 힙 덤프를 트리거 한 JVM 7에서 JBoss 4.2.1 애플리케이션이 실행 중입니다. 내가 힙 내 오세요 원인을 정확히 파악하는 덤프를 읽어하려고어떤 스레드가 OutOfMemoryException 힙 덤프를 트리거했는지
-Xms1498m -Xmx3000m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError
: 나는 다음과 같은 스위치로 구성된 JVM 있습니다. 나는 많은 양의 메모리가 소비되는 것을보고 있지만 다소 기대된다. 내가 지금보고있는 것은 "흡연 총"입니다.
내 힙 덤프에 누락 된 메모리가 있다는 의미로 SO issue here을 이미 열었습니다. 따라서 OOME이 발생했을 때 JVM이 수행중인 작업을 파악하려고합니다.
어떤 스레드가 OOME을 트리거했는지 나타내는 힙 덤프가 있습니까? 더 구체적으로 내 OOME을 유발 한 호출이 무엇을하고 있었습니까? 나는 깨닫고 기억 누출의 경우, 이것은 잘못된 흔적을 뒤쫓아 가고 있을지도 모른다. 그러나 어떤 스레드가 예외를 일으켰는지 알기 위해보고있다.
이것을 사용하려면 MAT를 사용해야합니까?
예 - 스레드 개요를 살펴 보았습니다. 감사. 그러나 어떤 스레드가 OOME을 트리거했는지는 알려주지 않습니다. 258 개의 스레드가 나열된 것을 감안할 때 각각의 스레드를 조사하여 각각의 작업을 확인하는 것은 매우 어렵습니다. Retained Heap size로 정렬 할 수는 있지만 가장 많은 메모리를 차지하고있는 스레드를 알려줍니다. 그것은 어떤 스레드가 내 JVM 충돌을 일으켰는지 알려주지 않습니다. –
다음과 비슷한 것을 보시겠습니까
"main"스레드의 예외 : 스택 추적에서 java.lang.OutOfMemoryError? – SVashisth
불행히도. 스택 추적 및 원인 (원인 : java.lang.OutOfMemoryError : Java 힙 공간)이 표시되지만 문제가되는 스레드 이름/번호는 표시되지 않습니다. –