新聞中心
本文向大家描述一下JVM監(jiān)控工具的用法,經(jīng)過(guò)簡(jiǎn)單試用,這些命令+圖形工具已經(jīng)足夠強(qiáng)大,能滿足一般的監(jiān)控要求了,如對(duì)各類內(nèi)存、垃圾回收、線程狀態(tài)的監(jiān)控。

JVM監(jiān)控工具用法指導(dǎo)手冊(cè)
一直沒(méi)有做過(guò)JVM監(jiān)控,總以為要找些專門(mén)的工具才能做JVM監(jiān)控,如jprofile之類的工具,但這類工具都是收費(fèi)的。經(jīng)過(guò)查找,發(fā)現(xiàn)其實(shí)sun的jdk中就帶有這類工具,從jdk5開(kāi)始命令行有了jstat,jps,jstatd,圖形監(jiān)控有了jconsole;而到了jdk6,命令有了jmap,jinfo,jstack,圖形有了jvisualvm。經(jīng)過(guò)簡(jiǎn)單試用,這些命令+圖形工具已經(jīng)足夠強(qiáng)大,能滿足一般的監(jiān)控要求了,如對(duì)各類內(nèi)存、垃圾回收、線程狀態(tài)的監(jiān)控。
JVM監(jiān)控工具之jstatd
啟動(dòng)JVM監(jiān)控服務(wù)。它是一個(gè)基于rmi的應(yīng)用,向遠(yuǎn)程機(jī)器提供本機(jī)JVM應(yīng)用程序的信息。默認(rèn)端口1099。
實(shí)例:jstatd-J-Djava.security.policy=my.policy
my.policy文件需要自己建立,內(nèi)容如下:
- grantcodebase"file:$JAVA_HOME/lib/tools.jar"{
- permissionjava.security.AllPermission;
- };
這是安全策略文件,因?yàn)閖dk對(duì)JVM做了jaas的安全檢測(cè),所以我們必須設(shè)置一些策略,使得jstatd被允許作網(wǎng)絡(luò)操作
JVM監(jiān)控工具之jps
列出所有的JVM實(shí)例
實(shí)例:
jps
列出本機(jī)所有的JVM實(shí)例
jps192.168.0.77
列出遠(yuǎn)程服務(wù)器192.168.0.77機(jī)器所有的JVM實(shí)例,采用rmi協(xié)議,默認(rèn)連接端口為1099
(前提是遠(yuǎn)程服務(wù)器提供jstatd服務(wù))
輸出內(nèi)容如下:
- jones@jones:~/data/ebook/java/j2se/jdk_gc$jps
- 6286Jps
- 6174Jstat
JVM監(jiān)控工具之jconsole
一個(gè)圖形化界面,可以觀察到j(luò)ava進(jìn)程的gc,class,內(nèi)存等信息。雖然比較直觀,但是個(gè)人還是比較傾向于使用jstat命令(在最后一部分會(huì)對(duì)jstat作詳細(xì)的介紹)。
JVM監(jiān)控工具之jinfo(linux下特有)
觀察運(yùn)行中的java程序的運(yùn)行環(huán)境參數(shù):參數(shù)包括JavaSystem屬性和JVM命令行參數(shù)
實(shí)例:jinfo2083
其中2083就是java進(jìn)程id號(hào),可以用jps得到這個(gè)id號(hào)。
輸出內(nèi)容太多了,不在這里一一列舉,大家可以自己嘗試這個(gè)命令。
分享名稱:JVM監(jiān)控工具使用速查手冊(cè)
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/dhcpgih.html


咨詢
建站咨詢
