티스토리 뷰

Out Of Memory등 시스템에 이상이 발생하면 OS인 AIX는 dump, core, snap 파일을 생성하여 관리자에게 안내한다. 그런데 파일 자체의 크기가 어마어마하기 때문에 (파일당 1~3GB) 자주 DISK-Full이 발생한다. 이를 방지하기 위해 덤프파일들이 저장되는 위치를 변경하는 명령어를 알아보기로 한다.

순서는

1. "java -Xdump:what"으로 저장 위치 확인
2. ".profile.sh" 파일수정
3. 운영 user 변경 
4. "java -Xdump:what"으로 저장 위치 변경 확인
1. 먼저 java -Xdump:what 명령으로 dump 파일들의 저장 위치를 확인한다.

Dump의 주체 system, heap, java, snap Event는 gpf, systhrow(system에서 던진건지) Label은 저장경로

2. 일반적으로 별도의 로그파일들을 분리하여 파일시스템을 만들고(여기서는 /log라 하자) 생성 경로로 저장되게끔 아래와  같이 ".profile.sh" 파일에 아래 내용을 추가한다.
 export IBM_HEAPDUMP=true
 export IBM_HEAP_DUMP=true
 export IBM_JAVA_HEAPDUMP_TEXT=true
 export IBM_HEAPDUMP_OUTOFMEMORY=true
 export IBM_JAVADUMP_OUTOFMEMORY=true
 export IBM_JAVADUMPDIR=/log/javacore
 export IBM_HEAPDUMPDIR=/log/javacore

보통은 이렇게 JAVADUMPDIR과 HEAPDUMPDIR의 PATH를 설정한다. 그런데 이렇게만 설정하면 javacore파일과 heapdump파일들만 저장되고 snap이나 다른 dump 파일들은 java를 실행시킨 경로(예를 들면 /sys/jeus/)에 덤프파일을 기록한다. 그래서 아래에 

export IBM_COREDIR=/log/javacore

을 추가해 주면 모든 dump파일들을 한 곳으로 몰아 넣을 수 있다.

3. ".profile.sh" 파일을 수정했으니 su 명령을 이용하거나 터미널을 다시 접속해서 변경된 .profile을 로드시키도록 하자
4. 다시 "java -Xdump:what" 명령으로 dump 파일들의 저장 위치를 확인한다.

참고로 java -Xdump:what이라는 명령어로 현재 설정을 확인 할 수 있다.

자세한 명령어 실행과 옵션은 아래 링크를 참조

기본 덤프 에이전트 - IBM Documentation

728x90
반응형
댓글