※ AIX를 직접 테스트할 서버가 없어 구글링 및 메뉴얼 기반으로 간략하게 정리한 글이므로, 실제 운용환경과는 맞지 않거나 틀린 내용이 있을 수 있습니다.
1. AIX 메모리 덤프 수행
AIX는 snap 명령을 통해 core 덤프를 획득하는 방식으로 메모리 덤프를 수행합니다.
snap 명령을 이용하여 core 덤프 이외에도 많은 시스템 정보를 함께 획득할 수 있으며, 덤프를 수행하기 이전에 덤프 설정을 확인하는 작업이 필요합니다.
sysdumpdev 명령은 AIX 시스템에서 덤프 장치를 확인 및 설정하는 명령이며 -l 옵션으로 현재 덤프 설정값을확인할 수 있습니다.
# sysdumpdev -l |
dumpcheck 명령은 덤프 수행시 발생가능한 에러 정보를 확인할 수 있습니다.
# /usr/lib/ras/dumpcheck -p |
덤프가 정상적으로 수행가능한 경우 아무런 출력값이 존재하지 않으며 덤프 장치 크기가 너무 작거나 덤프 디렉토리에 사용 가능한 공간이 작은 경우 등, 덤프가 정상적으로 수행이 불가능할 경우 해당 내용이 출력됩니다.
The largest dump device is too small 에러 -열기dumpcheck 명령 실행 결과 덤프 장치 사이즈가 너무 작다는 에러가 발생하는 경우 덤프 장치의 크기를 늘려주거나 좀 더 사이크가 큰 덤프 장치로 변경해주어야 합니다.
1.1 덤프 장치 사이즈 확장
# /usr/lib/ras/dumpcheck -p Largest dump device size in kb 4194304 Current estimated dump size in kb 4273971 |
우선, 현재 덤프 장치의 PP(Physical Partition) 정보를 lsvg 명령을 통해 확인합니다.
# lsvg -l rootvg |
덤프 설정이 완료되면 snap 명령을 통해 메모리 덤프를 수행합니다.
덤프의 기본 출력 디렉토리는 /tmp/ibmsupt 이며 -d 옵션을 이용하여 별도의 디렉토리를 설정할 수도 있습니다.
# snap -gfkvGLDN |
각 옵션의 역할은 아래와 같습니다.
옵션 |
설명 |
-g |
정확한 운영 시스템환경을 재작성하는데 필요한 lslpp -hBc 명령 결과 축적 (lslpp : 설치된 소프트웨어 파일 세트 정보 출력을 위한 명령) |
-f | 파일 시스템 정보 축적 |
-k | 커널 정보 축적 |
-G | 사전 정의된 오브젝트 데이터 관리자(ODM) 파일 -g 플래그로 축적한 일반 정보에 포함 |
-L | LVM 정보 축적 |
-D | 덤프 및 /unix 정보 축적 |
-N | 사용 가능한 공간이 있는지 검사하지 않음 |
2. AIX 메모리 덤프 분석
AIX는 기본적으로 제공되는 kdb를 이용하여 메모리 분석을 진행하며, 각종 subcommand를 이용하여 정보를 추출할 수 있습니다.
kdb 명령의 인자값으로는 snap명령 등에 의해 생성된 dump,unix 파일이 필요합니다.
snap 명령의 결과는 보통 pax.Z 또는 .Z으로 압축이되어있는데, 아래 명령으로 압축 해제가 가능합니다.
# uncompress snap.pax.Z # pax -rf snap.pax # cd ./dump # uncompress unix.Z # uncompress dump.Z # kdb ./dump ./unix |
kdb 명령의 subcommand 종류는 매우 다양하나 유용한 몇가지만 간략하게 보자면 아래와 같습니다.
SubCommand |
설명 |
> p * |
프로세스 테이블 출력 |
> lle -k |
커널 모듈 목록 출력 |
> lle -l32 |
32bit 라이브러리 모듈 목록 출력 |
> lle -l64 |
64bit 라이브러리 모듈 목록 출력 |
> netstat -Aan |
네트워크 목록 출력 |
-AIX Dump 분석: kdb 사용하기
http://blog.naver.com/PostView.nhn?blogId=longskyf&logNo=110051978908
–kdb kernel debugger and kdb command
http://aix4admins.blogspot.kr/2012/05/kdb-kdb-kernel-debugger-and-kdb-command.html
-AIX에서 “The Largest dump device is too small” 이라 ERROR 메시지가 발생할 때
-aix dumpdev 생성과 사용
http://blog.boxcorea.com/wp/archives/591
-IBM KDB kernel debugger Menual
-eIBM AIX 명령어 모음 (현재 URL이 사라진 상태이므로 미리 수집해둔 페이지파일을 첨부합니다.)