[Tomcat] JVM 크래쉬 로그
출처 : http://helloworld.naver.com/helloworld/1134732
우연히 Tomcat에 대한 로그 분석에 글을 읽었다.
Tomcat의 어플리케이션과 서버관련 Log는 /logs에 있지만 JVM에 대한 크래쉬 로그는
hs_err_pid파일로 분석할 수 있다고 한다.
이 파일에는 Stack trace정보가 찍힌다고 한다
예전 Android EPG 를 개발할 때 펌웨어에서 찍는 것을 본 적이 있는데 비슷한것 같다?
Tomcat TroubleShooting and Diagnostic Guide
표 2 hs_err_pid 파일의 주요 구성 항목
구성 항목 | 설명 |
Header | 오류에 관한 간략한 정보가 기술된 영역. 프로세스 아이디, 스레드 아이디, VM버전, 크래시를 일으킨 function frame정보 등이 있다. |
Thread | 크래시 발생 당시의 스레드 관련 정보 |
Process | 모든 프로세스에 대한 정보. 이 프로세스에는 스레드 목록과 메모리 사용량에 대한 정보가 있다. |
System | 운영체제 버전, CPU정보, 메모리 설정 관련 정보 등 |
다음은 성능 테스트 시의 JVM 크래시 로그 중 크래시 당시의 스레드가 무엇인지 알려 주는 정보다.
#
# A fatal error has been detected by the Java Runtime Environment:
# SIGSEGV (0xb) at pc=0xb7961e23, pid=11757, tid=1405516688
#
# JRE version: 6.0_18-b07
# Java VM: Java HotSpot(TM) Server VM (16.0-b13 mixed mode linux-x86 )
# Problematic frame:
# V [libjvm.so+0x5a2e23]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
--------------- T H R E A D ---------------
Current thread (0x09a57400): GCTaskThread [stack: 0x53be7000,0x53c68000] [id=11760]
그림 1 JVM Heap Space 구조
위 그림은 출처에서 따왔는데 너무도 잘 표현한 것 같다.
JVM Heap Space 구조..
eden영역이 꽉차게 되면 GC가 도는데
S0, S1중 한쪽을 비우고 다른한쪽에는 보존해야 할것을 보존한다.
이런식으로 돌때 자주 살아남는? 메모리는 Old로 이동되게 된다.
'Apache' 카테고리의 다른 글
[Thrift] Thrift 란? (0) | 2015.02.03 |
---|