Languages/Java

JMX로 JVM 모니터링하기 입문

2024. 1. 15. 15:30
목차
  1. JMX : Java Management Extentions
  2. JMX 구조
  3. MBeans
  4. JMX 모니터링 방법
  5. 모니터링 대상

JMX : Java Management Extentions

JVM에서 구동중인 어플리케이션 상태, JVM 시스템 상태를 모니터링하는 Java API

 

프로메테우스, 마이크로매타 등 다른 메트릭 시스템과 연동해서 통일된 인터페이스로 모니터링 할 수 있음. (확장성)

 

JMX 구조

Instrumentation Level : MBeans (쓰레드, 힙 등 어플리케이션 상태 정보를 수집)

Agent Level : MBean Server

Connector Level : 어댑터들로 프로토콜에 맞춰서 데이터 변경

Manager Level : 엠빈 서버에 데이터를 요청하는 외부 클라이언트

 

MBeans

Standard MBean

Dynamic MBean

Model MBean

Open MBean

 

JMX 모니터링 방법

pid로 모니터링하기

VisualVM, jconsole

JMX Prometheus Exporter

 

모니터링 대상

Thread

Thread Dump

현재 스레드 상태 기록. 스레드 그룹, 스레드 상태, 실행하고 있는 클래스 파일 등

갑자기 CPU 사용률이 치솟거나 스레드 자원 할당이 안돼서 병목 될때 원인 분석을 위해 모니터링

 

cpu 자원사용량, 스레드 개수, uptime 등을 확인할 수 있음.

 

Memory

Heap Dump

현재 heap 메모리 상태 기록. heap 영역별로 사용량이 얼마나 되는지, 클래스별 object 수 등을 볼 수 있음. 메모리 사용량이 예상보다 높거나 OOM으로 죽는 경우 원인 분석을 위해 모니터링

 

(주로 콜렉션에 데이터를 남겨놨다가 지우지 않아서 쌓이는 경우 발생)

 

heap usage/size, nonheap usage/size (운영체제 메모리 native memory 빌려쓴거), heap 영역별 usage/size

 

GC

GC Log

GC는 자바 어플리케이션 성능에 큰 영향을 미친다. GC 로그를 통해서 어떤 이유로 얼마나 수행되었는지 모니터링.

gc thread count, memory usage before/after gc, gc time/duration, gc 단계별

 

Crash Dump

JVM이 예상치 못한 크래시로 강종될때 상태를 기록. 주로 Native Library를 사용할 때 나타난다. 머신이 강종되는 경우는 JVM이 알 수 없으므로 남지 않는다.

 

기록이 안된다면 : usage full, 쓰기 권한 문제

'Languages > Java' 카테고리의 다른 글

Java 입문  (1) 2024.01.05
  1. JMX : Java Management Extentions
  2. JMX 구조
  3. MBeans
  4. JMX 모니터링 방법
  5. 모니터링 대상
'Languages/Java' 카테고리의 다른 글
  • Java 입문
jamong5
jamong5
데이터 엔지니어를 희망하는 개발자 지망생
JAMONG5데이터 엔지니어를 희망하는 개발자 지망생
jamong5
JAMONG5
jamong5
전체
오늘
어제
  • 분류 전체보기 (171)
    • Algorithem (92)
      • 백준 PS with code (64)
      • 프로그래머스 PS with code (9)
      • 알고리즘 이론 (3)
    • Languages (19)
      • Python (10)
      • Java (2)
      • C & C++ (7)
    • SQL (42)
      • 프로그래머스 MySQL with code (41)
      • MySQL (1)
    • CS (2)
    • DevOps (4)
      • Docker (1)
      • Git, GitHub (3)
    • 코드 고민 (1)
    • 도움을 받은 정보 (2)
    • 책 (4)
    • 보드 게임 일기 (1)
    • 컴퓨터 일기 (2)
    • R&D 휴지통 (0)

블로그 메뉴

  • 소개
  • 홈
  • 태그

공지사항

인기 글

태그

  • 투포인터
  • 구현
  • heapq
  • MySQL
  • 시간초과
  • backtracking
  • 백준
  • Python
  • LCS
  • 프로그래머스
  • 스택
  • join
  • 그래프탐색
  • 최소힙
  • 백트래킹
  • 파이썬
  • Git
  • 알고리즘
  • 똥이
  • SQL

최근 댓글

최근 글

hELLO · Designed By 정상우.
jamong5
JMX로 JVM 모니터링하기 입문
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.