※ 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 에러 -열기


덤프 설정이 완료되면 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

 네트워크 목록 출력


+ Recent posts