안녕하세요 "미들웨어" 입니다.

 

지난번에 이어 JBoss & Wildfly 진행을 이어 나가겠습니다.

이번 장에서는 CJMX에 대해 소개하고 사용방법에 대해 알려드리겠습니다.

 

(JBoss & Wildfly) 기동, 다운 스크립트 생성 방법 (standalone.sh, domain.sh)

(JBoss & Wildfly) standalone-ha.xml 를 사용한 Cluster 구성 방법

(JBoss & Wildfly) wildfly 란? 설치방법 및 기본 구성

(JBoss & Wildfly) JBoss-eap 에서 wildfly 마이그레이션시 발생 에러

(JBoss & Wildflywildfly에서 remote ejb 설정 및 구성 방법 

(JBoss & WildflyWildfly 에서 Oracle JDBC 연동설정 하는 방법 

(JBoss & Wildfly) standalone-ha.xml 를 사용한 session cluster 구성 및 keycloak session-cluster 방식 

(JBoss & Wildfly) CJMX란? 사용방법 가이드 (Code Cache 불러오기)

 

제니퍼나 스카우터에서도 확인이 안되니.. JMX Mbeans를 사용해서 코드캐시를 불러오는 방법 입니다.

 

CJMX 란..?

 

모니터링되는 프로세스의 JVM에로드 된 클래스가 없어도 대부분의 기능을 수행한다.
원격으로 서버에 연결해서 JMX MBeans 값을 보려면 방화벽 오픈과 설정값 추가로 인해 재기동도 해야하는 불편함이 있는데,
CJMX 를 사용하면 서버에 직접 연결해서 JConsole 에서 보는 JMX MBeans 값을 cli 모드로 확인 할 수 있다 

 

 

1. CJMX 다운로드

 

2. connect [pid]

  • 다운로드된 cjmx_2.12-2.7.0-app.jar 파일을 JMX 모니터링 하고자 하는 서버에 업로드 한다.
  • 해당 계정에 JAVA_HOME 설정이 되있다는 가정하게 업로드 파일을 원하는 경로에 /home/wasgosu 추가한다.

> java -cp $JAVA_HOME/lib/tools.jar:/home/wasgosy/cjmx_2.12-2.7.0-app.jar cjmx.Main
위 명령어는 cjmx_2.12-2.7.0-app.jar 파일이 있는 경로에서 수행해야 한다. 

3. jps & connect 진행 

> jps
JPS를 입력하면 JAVA를 사용하고 있는 PID값을 보기 좋게 확인 할 수 있다.
 

> connect [pid]
CJMX 로 연결할 PID 값을 connect 명령어로 연동한다. 

4. JMX MBeans "name=Code Cache" 값 확인 

> mbeans 'java.lang:type=MemoryPool,name=Code Cache' select *  

아래 스샷 중 위에가 PeakUsage 이고, 아래쪽이 현재 Usage 메모리 상태이다.
Code Cache=48MB가 default 값이므로, 39285 프로세스의 Code Cache 사용현황은 아래와 같이 확인 할 수 있다.
PeakUsage = committed=48MB, used=48MB
Usage = committed=48MB, used=34MB 

5. JAVA 에서 제공하는 JMX Mbeans List

java.lang:type=ClassLoading
java.lang:type=Compilation
java.lang:type=Memory
java.lang:type=OperatingSystem
java.lang:type=Runtime
java.lang:type=Threading

 
java.lang:type=MemoryManager,name=CodeCacheManager
java.lang:type=MemoryManager,name=Metaspace Manager
java.lang:type=MemoryPool,name=Code Cache
java.lang:type=MemoryPool,name=Compressed Class Space
java.lang:type=MemoryPool,name=Metaspace
java.lang:type=MemoryPool,name=PS Eden Space
java.lang:type=MemoryPool,name=PS Old Gen
java.lang:type=MemoryPool,name=PS Survivor Space

 

6. 이슈 공유 (JDK 1.7 CodeCache 버그) 

사실은.. CJMX를 찾아보게 된 이유는 jdk 1.7 + jboss 버전간 이슈로 인해 CodeCache를 확인해보기 위해서였는데, 도움이 되시길 바랍니다.

https://stackoverflow.com/questions/38393071/jdk7-application-is-getting-slow-after-some-uptime/38393072

 

열공하세요~

+ Recent posts