jconsole tomcat內存監控設置

Jconsole是JDK自帶的一個很好的jvm查看工具,免費不用說,而且內存狀態刷新的快,垃圾回收也快。由於,需要監控一個即將上線的web應用是否有內存泄露,即需要監控tomcat的jvm內存狀況。Jconsole是基於jmx進行通信、信息發送獲取的,因此需要對tomcat進行相應設置,jconsole纔可監控tomcat。

1、windows下,通常是我們的開發環境

Windows下,通常是我們的開發環境設置tomcat相關參數,首先反應是修改catalina.bat等文件,我個人意見這些啓動文件能不改儘量不改,沒多大好處。幸運的是,我們現在java開發基本上都是基於eclipse或者myeclipse的,因此只要的eclipse或者myeclipse服務器配置中,設置tomcat服務器的啓動參數即可。

如myeclipse8.5,windows—>preferencesàmyeclipseàserversàtomcat6,在其JDK optional java vm arguments設置中,輸入下述內容即可:

-Xmx256m -Xms128m
-Djava.rmi.server.hostname=192.168.10.101
-Dcom.sun.management.jmxremote.port=8061
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

設置完畢後,在myeclipse中啓動tomcat,我們即可啓動jconsole連接 192.168.0.1:8061進行tomcat的jvm內存監控。

2、linux下

現在,大多數生產機的tomcat應用都是部署在linux或者unix機器上,windows上很少,本文以linux爲例。

還是基於我剛纔的原則,不修改catalina.sh等啓動文件。我們手工創建一個start文件,內容如下:

JAVA_HOME=/usr/java/jdk1.6.0_06/
TOMCAT_HOME=/usr/java/apache-tomcat-6.0.16
PATH=$JAVA_HOME/bin:TOMCAT_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
CATALINA_OPTS="-Xmx3072m -Xms3072m -Djava.rmi.server.hostname=192.168.1.101 -Dcom.sun.management.jmxremote.port=8061 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jre/lib/management/jmxremote.password"
export CATALINA_OPTS
/usr/java/apache-tomcat-6.0.16/bin/startup.sh

將start文件存放到tomcat bin目錄下,則我們只要以下指令即可啓動tomcat:

at –f /usr/java/apache-tomcat-6.0.16/bin/start now

由於是生產機的設置,因此設置Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jre/lib/management/jmxremote.password,jconsole連接192.168.1.101:8061時需要用戶名和口令驗證,確保安全性。

實際上會用到2個文件,jmxremote.access文件和jmxremote.password文件,前者設置用戶,後者設置用戶及對應的口令。這連個文件在$JAVA_HOME/jre/lib/management都有,我們只要修改其中的用戶和口令即可。

這裏一個需要特別注意的是jmxremote.password訪問權限一定要設置好,設置成owner可讀即可,否則tomcat啓動失敗,會報類似jmxremote.password resticted錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章