안녕하세요 촌놈입니다 ^.^

자자오늘은 자바 리소스를 모니터링 해볼까합니다.


JConsole은 자바 리소스 모니터링 지원 프로세스인데요 ~

보통 JDK Profiling 라고 불러 집니다.


개발은 열씸히들 하시겠지만 프로세스가 얼마나 자원을 차지하고 있는지 그리고 이에 준하는 H/W 및 S/W의 리팩토링 등을 판단 할 때 단순하게 Java 라는 프로세스로만 나오는 점을 조금이나마 더 세부하게 보여 주는 것으로 윈도우의 작업 관리자 같은 역할 이라고 보시면 됩니다.


주요기능

 - 메모리 이용률, 쓰레드 생성 내역, 클래스 로딩 수, CPU 점유율

 - 총 누적 정보


테스트 환경

- 윈도우 10

- JDK 8 (JDK 설치 필 수!)


위정도로 요약 할 수 있겠으며 추가적으로 원격지의 정보도 수집이 가능 하네요~

부끄럽게도 저도 10년을 JDK 개발자로 지내 왔지만 최근에야 알았네요!


실행방법


JDK HOME 아래의 BIN 폴더에 jconsole.exe 실행 파일이 있으며 PATH 등은 필요에 따라 설정 하시면됩니다!


[실행을 하면 위와 같은 화면이 나옵니다]


사용방법


프로세스 목록중에 확인 하고 싶은 프로세스를 더블 클릭 하시면 해당 프로세스에 대한 JDK 일렬의 정보가 노출 됩니다.


[SSL 보안 문구 : 로컬 PC 상태임으로 Connection  클릭]



[해당 프로세스의 전체 적인 자원 운용 상태]



[메모리에 대한 조금더 세부 적인 그래프]



메모리점유율 같은 경우 할당당 대피 점유율을 그래프로 보여 줍니다. JDK의 경우 실행을 할 경우 프로세스에대한 자원 MAX를 할 당 할 수있으니 이를 기준으로 얼마나 더 많은 자원을 할당 할 지 고민 해봐야 겠지요


예) 이클립스 개발시 동시에 오픈한 프로젝트를 최대로 운용 하였을때 자원을 모니터링하고 기준으로 할 당을 eclipse.ini 파일에 할 당을 한다!



[스레드 자원에 대한 모니터링]


스레드 이부분이 우리모두가 궁금해 하는 부분이라고 생각됩니다. 세부적으로 독립적으로 움직이는 프로세스를 윈도우 작업 관리자 처럼 보여 줍니다. 상태는 어떤지 등의 정보 정도를 제공하는군요...


자 여기까지 jconsole 에대한 개략 적인 내용을 보았습니다. JDK의 경우 복합 프로세스로 움직이는 부분을 하나 KILL을 처리 할 수도 없고 대략적인 시스템의 운용 자원을 리소스하여 리팩토링 여부를 판단하기에는 막막하던 자원부분을 조금이나마 증빙을 할 수 있었다고 판단 됩니다.


그리고 추가적으로 메인화면에서 Remote Process를 통해 원격지 또한 모니터링이 가능합니다. 요건 다른 포스팅에서 ^.^


그럼 다른 프로그램은 없나?


있지요 저도 한번쯤 사용해보고 추가적으로 포스팅을 하겠지만 간략히 보면 아래와 같습니다. 설치를 하거나 다운로드를 받거아 해야하지만 JConsole은 기본 설치가 되어 있다는 점이 강점 으로 볼 수 있다고 하겠네요 ~


- Your Kit (https://www.yourkit.com/)

- JProfiler (https://www.ej-technologies.com/products/jprofiler/overview.html)

- VisualVM (https://visualvm.github.io/)

- AppDynamics Lite (https://www.appdynamics.com)





※ JConsole 에대한 세부정보 원문 링크

https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html



PS. 여기까지 읽어 주셔서 감사합니다.


블로그 이미지

촌놈 개발자 일기

개발자로서 살아가는 느낌과 정보를 공유 합니다

,