본문 바로가기

JVM2

자바 애플리케이션 모니터링, javaagent, bytecode instrumentation 자바 애플리케이션 모니터링 JavaAgent, Bytecode Instrumentation 애플리케이션 운영시 모니터링이 필요하다. 애플리케이션 모니터링 서비스로 Datadog, Newrelic, Pinpoint 등이 있다. 위와 같은 자바에 모니터링 서비스를 연동할 때는 주로 자바의 javaagent 를 사용한다. javaagent 는 무엇인지 알아보자. JavaAgent JVM 에서 동작하는 자바 애플리케이션. JVM 의 다양한 이벤트를 전달받거나 정보 조회, 바이트코드 제어 등을 API 를 통하여 수행할 수 있다. -javaagent:[=] JVM 의 실행 가능한 최초 진입점인 main 메소드를 가로챌 수 있다. 실행시간에 동적으로 bytecode 를 조작할 수 있다. JVM 과 동일한 Class .. 2023. 3. 20.
자바 힙메모리 확인, heap dump Heap Dump 애플리케이션에서 메모리 과다 사용 문제 비정상적으로 힙메모리를 사용하고 있는 부분을 찾아 버그를 수정해야함. 힙메모리를 과다사용하면, GC 가 자주 발생해 애플리케이션 성능 저하가 되거나 OOM 으로 애플리케이션이 중단될 수 있다. java.lang.OutOfMemoryError: Java heap space at ... Full GC 를 해도, 메모리가 큰 변화없다면 메모리 누수(memory leak) 가 발생하는 것이므로 힙 메모리 확인 필요하다. Heap 사용량 증가 원인 원인은 여러가지가 있겠지만 보통 개발자 코드가 의도하지 않은대로 작동해서 발생한 버그일 경우가 높다. 혹은 많은 트래픽이 몰려와 평소보다 많은 힙 영역을 차지할 가능성도 있다. 애플리케이션 모니터링 GUI Vis.. 2023. 3. 19.
728x90