Share via


Azure Spring Apps에서의 힙 덤프 및 스레드 덤프의 수동 캡처 및 Java Flight Recorder 사용

참고 항목

Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.

이 문서의 적용 대상: ✔️ 기본/표준 ✔️ 엔터프라이즈

이 문서에서는 힙 덤프 또는 스레드 덤프를 수동으로 생성하는 방법과 JFR(Java Flight Recorder)을 시작하는 방법을 설명합니다.

효과적인 문제 해결은 프로덕션 환경에서 문제를 해결하고 비즈니스를 온라인 상태로 유지할 수 있도록 하는 데 중요합니다. Azure Spring Apps는 애플리케이션 로그 스트리밍 및 쿼리, 풍부한 메트릭 방출, 경고, 분산 추적 등을 제공합니다. 그러나 대기 시간이 높거나 JVM 힙 누수가 많거나 CPU 사용량이 높은 요청에 대한 경고가 표시되는 경우 라스트 마일 솔루션이 없습니다. 따라서 수동으로 힙 덤프를 생성하고, 스레드 덤프를 생성하고, JFR을 시작할 수 있도록 지원합니다.

필수 조건

힙 덤프 생성

다음 명령을 사용하여 Azure Spring Apps에서 앱의 힙 덤프를 생성합니다.

az spring app deployment generate-heap-dump \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path>

스레드 덤프 생성

다음 명령을 사용하여 Azure Spring Apps에서 앱의 스레드 덤프를 생성합니다.

az spring app deployment generate-thread-dump \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path>

JFR 시작

다음 명령을 사용하여 Azure Spring Apps에서 앱에 대한 JFR을 시작합니다.

az spring app deployment start-jfr \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path> \
    --duration <duration-of-JFR>

duration에 대한 기본값은 60초입니다.

Azure Portal을 사용하여 덤프 생성

다음 단계를 사용하여 Azure Spring Apps에서 앱의 힙 또는 스레드 덤프를 생성합니다.

  1. Azure Portal에서 대상 앱으로 이동한 다음, 문제 해결을 선택합니다.

    문제 해결 단추가 강조 표시된 앱 개요 페이지를 보여 주는 Azure Portal 스크린샷.

  2. 문제 해결 창에서 수집하려는 앱 인스턴스 및 덤프 유형을 선택합니다.

    Azure Portal 문제 해결 창을 보여 주는 스크린샷.

  3. 파일 경로 필드에서 영구 스토리지의 탑재 경로를 지정합니다.

  4. 수집을 선택합니다.

진단 파일 가져오기

영구 스토리지의 대상 파일 경로로 이동하여 덤프/JFR을 찾습니다. 여기에서 로컬 머신에 다운로드할 수 있습니다. 생성된 파일의 이름은 힙 덤프의 <app-instance>_heapdump_<time-stamp>.hprof, 스레드 덤프의 <app-instance>_threaddump_<time-stamp>.txt 및 JFR 파일의 <app-instance>_JFR_<time-stamp>.jfr와 비슷합니다.

다음 단계