Linux 에 대한 MustGather 정보

문제가 발생하는 경우 시스템 환경의 상태에 대해 알려진 정보가 많을수록 진단하기가 더 쉽습니다.

IBM® Support Assistant Data Collector 는 문제점 이벤트에 대한 Java™ 진단 파일을 수집하기 위해 권장되는 유틸리티입니다. IBM Support Assistant Data Collector 는 덤프 및 로그 파일과 같은 진단 파일을 수집하고 필요한 경우 IBM으로 정보를 보내는 데 도움을 줍니다. 자세한 정보는 진단 도구 사용을 참조하십시오.

다음 절에서는 Java용 IBM 서비스 팀이 문제점을 해결하는 데 도움을 주기 위해 수집할 수 있는 데이터에 대해 설명합니다.

시스템 덤프 생성

-Xdump:system 명령행 옵션을 사용하여 트리거에 따라 시스템 덤프를 얻을 수 있습니다. 자세한 정보는 덤프 에이전트 사용 을 참조하십시오.

Linux® 시스템 유틸리티를 사용하여 시스템 덤프를 생성할 수도 있습니다.
  1. ps 명령을 사용하여 애플리케이션의 프로세스 ID를 판별하십시오. ps 명령을 참조하십시오.
  2. 쉘 프롬프트에서 gcore -o <dump file name> <pid> 입력

애플리케이션에 대한 시스템 덤프 파일이 생성됩니다. 애플리케이션은 시스템 덤프가 쓰여지는 동안 일시중단됩니다.

시스템 덤프(코어 파일) 수집

다양한 유형의 문제점을 진단하는 데 도움이 되는 시스템 덤프를 수집하십시오. jextract 유틸리티를 사용하여 시스템 덤프를 처리하여 서비스를 위한 파일을 생성하십시오 ( 덤프 추출기 (jextract)참조).
주: IBM Support Assistant Data Collector 는 콜렉션 프로세스의 일부로 시스템 덤프에서 jextract 유틸리티를 실행합니다.

Java 덤프 생성

충돌과 같은 일부 경우에는 Java 덤프가 현재 디렉토리에 생성됩니다.

정지 등의 기타 조건에서는 JVM에 SIGQUIT 기호를 전송하여 java 덤프를 생성하도록 JVM에 프롬프트를 표시해야 할 수 있습니다.
  1. ps 명령을 사용하여 애플리케이션의 프로세스 ID를 판별하십시오. ps 명령을 참조하십시오.
  2. 쉘 프롬프트에서 kill -QUIT <pid> 입력

이 프로세스에 대한 자세한 정보는 J9 VM 참조에서 Java 덤프 사용 을 참조하십시오.

힙 덤프 생성

JVM에서 사용자 요청 시에 예를 들어, 애플리케이션 내에서 com.ibm.jvm.Dump.HeapDump()를 호출하는 경우 또는 OutOfMemoryError 예외로 인해 JVM이 종료되는 경우 기본적으로 힙 덤프를 생성할 수 있습니다. -Xdump:heap 옵션을 사용하여 힙 덤프 시간 제어를 더 정교하게 지정할 수 있습니다. 예를 들어, 특정 수의 전체 가비지 콜렉션이 발생한 후에 힙 덤프를 요청할 수 있습니다. 기본 힙 덤프 형식(phd 파일)은 사용자가 읽기 가능한 형식이 아니므로 Heaproots와 같은 사용 가능 도구를 사용하여 이를 처리해야 합니다. 자세한 정보는 J9 VM 참조에서 힙 덤프 사용 을 참조하십시오.

스냅 추적 생성

기본 조건에서 JVM을 실행하면 특수 포괄 버퍼에서 소량의 추적 데이터를 수집합니다. 이 데이터는 JVM이 예기치 않게 종료되거나 OutOfMemoryError가 발생하는 경우 파일에 덤프됩니다. -Xdump:snap 옵션을 사용하여 스냅 추적이 생성되도록 하는 이벤트를 변경할 수 있습니다. 스냅 추적은 일반 추적 파일 형식으로 되어 있으며 읽을 수 있도록 제공된 표준 추적 포맷터를 사용해야 합니다. 스냅 추적의 컨텐츠 및 제어에 대한 자세한 정보는 스냅 추적 을 참조하십시오.

JIT 덤프 생성

GPF(General Protection Fault) 또는 중단 이벤트는 JIT 진단 데이터의 소형 2진 덤프를 생성합니다. 자세한 정보는 JIT 덤프를 참조하십시오.

시스템 로그 사용

커널은 시스템 메시지 및 경고를 기록합니다. 시스템 로그는 /var/log/messages 파일에 있습니다. 이를 사용하여 특정 문제점 또는 이벤트를 야기하는 동작을 확인하십시오. 시스템 로그는 시스템의 상태를 판별하는 데도 도움이 됩니다. 기타 시스템 로그는 /var/log 디렉토리에 있습니다.

운영 환경 판별

이 섹션에서는 라이프사이클의 다양한 단계에서 프로세스의 운영 환경을 판별하는 데 유용할 수 있는 명령에 대해 살펴봅니다.

uname -a
운영 체제 및 하드웨어 정보를 표시합니다.
df
시스템의 디스크 여유 공간을 표시합니다.
무료
메모리 사용 정보를 표시합니다.
ps -ef
전체 프로세스 목록을 표시합니다.
lsof
열린 파일 핸들을 표시합니다.
top
기본적으로 프로세서 사용별로 정렬된 프로세스 정보(예: 프로세서, 메모리, 상태)를 표시합니다.
vmstat
일반 메모리 및 페이징 정보를 표시합니다.

uname, dffree 출력이 가장 유용합니다. 프로세스의 상태를 판별하기 위해 충돌 전후 또는 정지 중에 다른 명령을 실행할 수 있습니다. 이러한 명령은 유용한 진단 정보를 제공할 수 있습니다.

Java 지원 팀에 정보 보내기

이전 섹션에 나열된 명령의 출력을 수집한 경우 해당 출력을 파일에 넣으십시오.

파일이 클 수 있으므로 Java 지원으로 보내기 전에 파일을 압축하십시오. 파일 압축은 매우 높은 비율로 수행해야 합니다.

다음 명령은 파일 {file1,..,fileN}의 아카이브를 빌드하고 이름이 filename.tgz 형식의 파일로 압축합니다.

tar czf filename.tgz file1 file2...filen

추가 진단 데이터 수집

문제점 유형에 따라 다음 데이터도 문제점 진단에 도움이 될 수 있습니다. 사용 가능한 정보는 Java가 시작되는 방법 및 시스템 환경에 따라 다릅니다. 이러한 디버깅 지원이 활성화되어 있지 않으면 구성을 변경하고 Java를 다시 시작하여 문제점을 재현해야 합니다.

/proc 파일 시스템

/proc 파일 시스템은 커널 레벨 정보에 대한 직접 액세스를 제공합니다. /proc/<pid> 디렉토리는 PID(프로세스 ID) <pid>(으)로 프로세스에 대한 자세한 진단 정보를 포함합니다. 여기서 <pid>은(는) 프로세스의 ID입니다.

cat /proc/<pid>/maps 명령은 지정된 프로세스의 메모리 세그먼트(원시 힙 포함)를 나열합니다.

strace 및 ltrace

straceltrace 명령을 사용하여 추가적인 진단 데이터를 수집하십시오. 추적 도구를 참조하십시오.