JDK中Jconsole的使用
2008-04-03 14:16
JAVA應(yīng)用程序打成jar包的部署方式:
一、Local方式
1、cmd進(jìn)入dos下,進(jìn)入到應(yīng)用程序所在目錄,執(zhí)行語句如下:
java -Dcom.sun.management.jmxremote -jar 程序名.jar
(java -Dcom.sun.management.jmxremote -jar Java2Demo.jar)(測試?yán)覬ava2Demo.jar在C:\Program Files\Java\jdk1.6.0_02\demo\jfc\Java2D\)
還出不來的話 直接 在dos里 jconsole 進(jìn)程號
2、啟動jdk_home\bin目錄下的Jconsole.exe就可以看到有一個(gè)
本地的連接在里面。點(diǎn)擊連接就可以進(jìn)入相應(yīng)的監(jiān)視界面了。
二、JMX方式(遠(yuǎn)程連接):
1、cmd進(jìn)入dos下,進(jìn)入到應(yīng)用程序所在目錄,執(zhí)行語句如下:
java -Dcom.sun.management.jmxremote.port=8903 -
Dcom.sun.management.jmxremote.ssl=false -
Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***
2、啟動jdk_home\bin目錄下的Jconsole.exe點(diǎn)高級。在JMX
URL:中輸入語句如下:
service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr
mi
點(diǎn)連接就可以進(jìn)行遠(yuǎn)程監(jiān)控了
web應(yīng)用程序在tomcat中部署JMX(示例:tomcat-6.0.14)
1、啟動tomcat\bin目錄下的tomcat6w.exe,在JAVA_OPTS里設(shè)
置如下:
-Dcom.sun.management.jmxremote.port=8903
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***
注意:不能有空格,不然tomcat不能啟動。
2、tomcat啟動成功后,就可以在另一臺機(jī)器上啟動
jdk_home\bin目錄下的Jconsole.exe點(diǎn)高級。在JMX URL:中輸
入語句如下:
service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr
mi
點(diǎn)連接就可以進(jìn)行遠(yuǎn)程監(jiān)控了
以上是JMX基本部署,沒有涉及到驗(yàn)證方面,如果使用的話,可
能會有漏洞,因?yàn)镾SL和authenticate設(shè)置為false的話,那么
8903端口就有可能有暴露的危險(xiǎn)。
如果想進(jìn)行密碼驗(yàn)證話,可以在網(wǎng)上找資料,自己進(jìn)行調(diào)試。
我自己的應(yīng)用:
1.修改Linux下tomcat的bin目錄下的catalina.sh文件
添加
JAVA_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=7080
-Dcom.sun.management.jmxremote
2.修改/etc/hosts文件下的localhost對應(yīng)的IP(127.0.0.1)地址,改為linux自身的IP如10.0.0.157.
3.打開jconsole遠(yuǎn)程輸入 10.0.0.157:7080
三
Eden Space (heap): 內(nèi)存最初從這個(gè)線程池分配給大部分對象。
Survivor Space (heap):用于保存在eden space內(nèi)存池中經(jīng)過垃圾回收后沒有被回收的對象。
Tenured Generation (heap):用于保持已經(jīng)在 survivor space內(nèi)存池中存在了一段時(shí)間的對象。
Permanent Generation (non-heap): 保存虛擬機(jī)自己的靜態(tài)(refective)數(shù)據(jù),例如類(class)和方法(method)對象。Java虛擬機(jī)共享這些類數(shù)據(jù)。這個(gè)區(qū)域被分割為只讀的和只寫的,
Code Cache (non-heap):HotSpot Java虛擬機(jī)包括一個(gè)用于編譯和保存本地代碼(native code)的內(nèi)存,叫做“代碼緩存區(qū)”(code cache)
================================================
使用 jconsole 監(jiān)控 tomcat6
2008-04-03 14:16
JAVA應(yīng)用程序打成jar包的部署方式:
一、Local方式
1、cmd進(jìn)入dos下,進(jìn)入到應(yīng)用程序所在目錄,執(zhí)行語句如下:
java -Dcom.sun.management.jmxremote -jar 程序名.jar
(java -Dcom.sun.management.jmxremote -jar Java2Demo.jar)(測試?yán)覬ava2Demo.jar在C:\Program Files\Java\jdk1.6.0_02\demo\jfc\Java2D\)
還出不來的話 直接 在dos里 jconsole 進(jìn)程號
2、啟動jdk_home\bin目錄下的Jconsole.exe就可以看到有一個(gè)
本地的連接在里面。點(diǎn)擊連接就可以進(jìn)入相應(yīng)的監(jiān)視界面了。
二、JMX方式(遠(yuǎn)程連接):
1、cmd進(jìn)入dos下,進(jìn)入到應(yīng)用程序所在目錄,執(zhí)行語句如下:
java -Dcom.sun.management.jmxremote.port=8903 -
Dcom.sun.management.jmxremote.ssl=false -
Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***
2、啟動jdk_home\bin目錄下的Jconsole.exe點(diǎn)高級。在JMX
URL:中輸入語句如下:
service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr
mi
點(diǎn)連接就可以進(jìn)行遠(yuǎn)程監(jiān)控了
web應(yīng)用程序在tomcat中部署JMX(示例:tomcat-6.0.14)
1、啟動tomcat\bin目錄下的tomcat6w.exe,在JAVA_OPTS里設(shè)
置如下:
-Dcom.sun.management.jmxremote.port=8903
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***
注意:不能有空格,不然tomcat不能啟動。
2、tomcat啟動成功后,就可以在另一臺機(jī)器上啟動
jdk_home\bin目錄下的Jconsole.exe點(diǎn)高級。在JMX URL:中輸
入語句如下:
service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr
mi
點(diǎn)連接就可以進(jìn)行遠(yuǎn)程監(jiān)控了
以上是JMX基本部署,沒有涉及到驗(yàn)證方面,如果使用的話,可
能會有漏洞,因?yàn)镾SL和authenticate設(shè)置為false的話,那么
8903端口就有可能有暴露的危險(xiǎn)。
如果想進(jìn)行密碼驗(yàn)證話,可以在網(wǎng)上找資料,自己進(jìn)行調(diào)試。
我自己的應(yīng)用:
1.修改Linux下tomcat的bin目錄下的catalina.sh文件
添加
JAVA_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=7080
-Dcom.sun.management.jmxremote
2.修改/etc/hosts文件下的localhost對應(yīng)的IP(127.0.0.1)地址,改為linux自身的IP如10.0.0.157.
3.打開jconsole遠(yuǎn)程輸入 10.0.0.157:7080
三
Eden Space (heap): 內(nèi)存最初從這個(gè)線程池分配給大部分對象。
Survivor Space (heap):用于保存在eden space內(nèi)存池中經(jīng)過垃圾回收后沒有被回收的對象。
Tenured Generation (heap):用于保持已經(jīng)在 survivor space內(nèi)存池中存在了一段時(shí)間的對象。
Permanent Generation (non-heap): 保存虛擬機(jī)自己的靜態(tài)(refective)數(shù)據(jù),例如類(class)和方法(method)對象。Java虛擬機(jī)共享這些類數(shù)據(jù)。這個(gè)區(qū)域被分割為只讀的和只寫的,
Code Cache (non-heap):HotSpot Java虛擬機(jī)包括一個(gè)用于編譯和保存本地代碼(native code)的內(nèi)存,叫做“代碼緩存區(qū)”(code cache)
================================================
使用 jconsole 監(jiān)控 tomcat6
在
catalina.bat
找到
set DEBUG_OPTS=
set JPDA=
在下面添加
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
保存
通過startup。bat啟動 tomcat
啟動jconsole (jdk1.6.0_02\lib):輸入
localhost:1090
用戶名 口令 為空
進(jìn)入 即可 查看