안녕하세요 촌놈입니다 ^.^
자자오늘은 자바 리소스를 모니터링 해볼까합니다.
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. 여기까지 읽어 주셔서 감사합니다.
'촌놈 - 취미로하는개발 > 기타, 팁' 카테고리의 다른 글
[이클립스, STS] 옵션 및 문제점 대응 모음집 (0) | 2020.05.24 |
---|---|
원문자, 한글, 숫자 (0) | 2020.03.31 |
[Java-JDK] 자바 디렉토리, 파일목록 가져오기 (1) | 2018.11.15 |
이클립스(JDK) 단축키 모음 (0) | 2018.11.02 |
구글 리캡챠(reCAPTCHA) 사용법 (0) | 2018.10.30 |