본문으로 건너뛰기

힙 메모리 메트릭스 알림 설정

노트

다음 자바 공식 문서 링크를 참조하세요.

애플리케이션 프로젝트의 힙 메모리 관련 메트릭스와 메트릭스 알림 설정에 대해 안내합니다.

힙 메모리 메트릭스

힙 메모리(Heap Memory)는 자바 가상 머신(JVM)이 프로그램을 실행하기 위해 할당한 데이터 저장 공간으로 인스턴스와 배열 등 주요 데이터를 저장합니다. 힙 영역은 인스턴스의 라이프 사이클 및 GC와 밀접한 관계를 가지고 있습니다. GC는 불필요한 인스턴스를 힙 영역에서 해제해 힙 영역의 빈 공간을 확보하는 작업입니다.

힙 메모리 위젯

힙 메모리 관련 지표를 통해 서버별 최대 힙 메모리, 현재 힙 메모리를 확인해 위험 수준을 살펴볼 수 있습니다. 또한 최댓값과 현재 값의 편차를 파악해 적절하게 힙 메모리를 설정할 수 있습니다. 힙 메모리 사용량의 최솟값이 지속적으로 상승하는 경우 메모리 누수 현상을 의심해 볼 수 있습니다.

메트릭스 조회

홈 화면 > 프로젝트 선택 > 사이트맵 > 분석 > 메트릭스 조회

메트릭스 조회 메뉴에서 확인할 수 있는 힙 메모리 관련 지표를 안내합니다.

Heap Memory

app_proc_counter 카테고리 선택 후 확인할 수 있습니다.

  • Heap 커밋 heap_committed

    JVM이 사용하도록 커밋된 힙 메모리를 의미합니다.

  • 최초 Heap heap_init

    JVM이 메모리 관리를 위해 OS에 요청한 최초 힙 메모리를 의미합니다.

  • Heap 최대 크기 heap_max

    JVM이 메모리 관리에 사용할 수 있는 최대 힙 메모리를 의미합니다.

  • Heap 사용량 heap_used

    JVM에서 사용 중인 힙 메모리를 의미합니다.

  • Heap 총 사용량 heap_tot

    JVM이 할당받은 힙 메모리의 총량을 의미합니다.

Non-heap Memory

java_memory 카테고리 선택 후 확인할 수 있습니다.

  • Heap 커밋 nonheap_committed

    JVM이 메모리 관리를 위해 OS에 요청한 최초 비 힙 메모리를 의미합니다.

  • 최초 Non-heap nonheap_init

    JVM이 메모리 관리를 위해 OS에 요청한 최초 비 힙 메모리를 의미합니다.

  • Non-heap 총 사용량 nonheap_max

    JVM에서 메모리 관리에 사용할 수 있는 최대 비 힙 메모리 사용량을 의미합니다.

    노트

    Metaspace 및 JIT 코드 캐시 최대 메모리 크기가 정의되지 않은 경우 -1을 반환합니다.

  • Non-heap 사용량 nonheap_used

    JVM에서 사용된 비 힙 메모리를 의미합니다.

메트릭스 차트

홈 화면 > 프로젝트 선택 > 분석 > 메트릭스 차트

메트릭스 차트 메뉴에서 확인할 수 있는 힙 메모리 관련 지표를 안내합니다.

  • Heap 최대 크기 heap_max

    JVM이 메모리 관리에 사용할 수 있는 최대 힙 메모리를 의미합니다.

  • Heap 총 사용량 heap_tot

    JVM이 할당받은 힙 메모리의 총량을 의미합니다.

  • Heap 사용량 heap_use

    JVM에서 사용 중인 힙 메모리를 의미합니다.

  • Heap Perm 영역 사용량 heap_perm

    Perm 영역의 메모리 사용량을 의미합니다.

  • Heap Pending Finalization 개수 heap_pending_finalization

    대기 중인 Finalization을 가지고 있는 Object의 대략적인 개수를 의미합니다.

노트

애플리케이션 지표에 대한 내용은 다음 문서를 참조하세요.

힙 메모리 메트릭스 알림 설정

홈 화면 > 프로젝트 선택 > 경고 알림 > 메트릭스 탭 선택

힙 메모리 관련 경고 알림을 사용하기 위해서는 메트릭스 경고 알림을 설정해야 합니다. 메트릭스 경고 알림은 기본 알림보다 구체적이고 복잡한 알림 설정이 가능합니다. 자세한 내용은 다음 문서를 참조하세요. 다음의 예시는 힙 메모리 사용량(heap_used)을 기준으로 메트릭스 알림을 설정하는 방법을 안내합니다.

힙 메모리 메트릭스 이벤트 설정1

  1. 경고 알림 하위의 이벤트 설정 메뉴에서 메트릭스 탭을 선택하세요.

  2. 화면 상단 오른쪽에서 + 이벤트 추가 버튼을 선택하세요.

  3. 메트릭스 이벤트 창의 지시선 1 영역에서 이벤트명, 카테고리, 레벨, 메시지, 이벤트 발생 조건 등을 설정하세요.

    • 이벤트명을 입력하세요.

      Heap Memory

    • 레벨은 이벤트 발생 시 경고 수준을 의미합니다. 레벨을 설정하세요. 기본 설정은 Critical 수준입니다.

    • 카테고리 입력창에서 JavaMemory(java_memory)를 선택하세요.

    • 이벤트 메시지를 입력하세요. 예시 메시지의 경우 힙 메모리 사용량이 설정한 임계값 초과 시 해당 이벤트 발생 시간과 함께 발송됩니다.

      ${heap_used}${time}${metricThreshold}를 초과했습니다.

    • 필드, 연산자, 임계값을 입력해 이벤트 발생 조건을 설정하세요. 힙 사용량이 50,000,000 byte 초과 시 알림을 발생시키는 조건 예시는 다음과 같습니다.

      필드 heap_used, 연산자 >, 임계값 50000000

  4. 지시선 2 영역에서 지시선 a 이벤트 수신 관련 세부 요건을 설정하고 해당 이벤트 알림 규칙을 지시선 b 테스트해 보세요.

    힙 메모리 메트릭스 이벤트 설정2

    • 지시선 a 이벤트 수신 설정

      • 발생 횟수는 최근 n의 기간 동안 해당 이벤트가 n'회 발생 시 알림을 수신하도록 합니다.

        최근 1분 동안 해당 이벤트 3회 발생 시 알림이 발송됩니다.

      • 이벤트 발생 일시 중지는 해당 알림 발생 후 설정한 시간 동안 동일한 알림이 발생하지 않도록 합니다.

    • 지시선 b 알림 규칙 테스트 옵션은 선택한 기간 동안 해당 이벤트 알림 설정 시 몇 번의 경고 알림이 발생했는지 확인할 수 있습니다.

      지난 60분 동안 1분 내 연달아 3회 이상 힙 메모리 사용량(heap_used)이 50,000,000byte를 초과하는 이벤트 발생 시 발송한 알림 건수는 총 66건 입니다.

  5. 메트릭스 이벤트 창 하단의 지시선 3 저장 버튼을 선택해 알림 설정을 완료하세요.

힙 메모리 사용량 확인

홈 화면 > 프로젝트 선택 > 분석 > 메트릭스 차트

선택한 기간 동안의 힙 메모리 사용량(heap_used)을 상세하게 확인하고 싶다면 메트릭스 차트로 이동하세요.

메트릭스 차트

  1. 상단의 지시선 1 시간 선택자를 통해 조회를 원하는 기간을 선택하세요.

  2. 왼쪽 지표 목록에서 지시선 2 카테고리JavaMemory(java_memory)를 선택하세요.

  3. 지시선 3 JavaMemory 카테고리 하위에서 heap_used를 선택하세요. 차트 영역에서 예시처럼 힙 메모리 사용량 차트를 조회할 수 있습니다.

  4. heap_used 위젯 상단 오른쪽의 더보기 아이콘을 클릭 후 옵션 메뉴에서 상세 아이콘 선택 시 모니터링 대상의 지표 추이를 개별로 확인할 수 있습니다.

    메트릭스 차트 상세1 sc

  5. 태그 필터 선택 시 다음과 같이 에이전트, 에이전트 그룹, 에이전트 호스트 등을 선택해 개별 차트를 조회할 수 있습니다.

    메트릭스 차트 상세2 sc