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