新聞中心
這里向大家描述一下JVM監(jiān)控的概念和應(yīng)用,主要包括本地JVM監(jiān)控和JVM監(jiān)控遠(yuǎn)程進程兩大部分內(nèi)容,經(jīng)過簡單試用,這些命令+圖形工具 已經(jīng)足夠強大, 能滿足一般的監(jiān)控要求了,如對各類內(nèi)存、垃圾回收、線程狀態(tài)的監(jiān)控。

10年積累的網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有汕頭免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
JVM監(jiān)控
經(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)控。
圖形:visualvm
如果是本地JVM監(jiān)控,則可以直接在本地的窗口中看到j(luò)ava應(yīng)用程序。雙擊點開即可打開JVM監(jiān)控窗口。
Remote它可以用來操作遠(yuǎn)程機器。遠(yuǎn)程機器需要啟動一個daemon:jstatd
1、遠(yuǎn)程機器啟動jstatd
1.1、首先需要準(zhǔn)備一個java.policy文件,保存到如/home/admin/jstatd.java.policy
- grantcodebase"file:${java.home}/../lib/tools.jar"{
- permissionjava.security.AllPermission;
- };
1.2、啟動jstatd
jstatd-J-Djava.security.policy=/home/admin/jstatd.java.policy-J-Djava.rmi.server.logCalls=true
1.3、同時需要執(zhí)行一個命令看看(linux需要)
Hostname–i
如果顯示是127.0.0.1,則需要修改/etc/hosts文件,去掉對本機名的配置,讓本機名解析到它的IP地址,如10.20.131.214
2、連接遠(yuǎn)程機器
3、點擊OK,看到會連接到遠(yuǎn)程機器,并顯示出它下面的java進程。
#p#
jconsole
JVM監(jiān)控本地應(yīng)用
首先就是啟動您要JVM監(jiān)控的應(yīng)用,例如我用JDK1.6來啟動了Tomcat,或者Eclipse也可以,可以在任務(wù)管理器(Ctrl+Alt+Del可以調(diào)出來,或者在任務(wù)欄點擊右鍵)里看到進程ID,例如我這里是6132.
接著在JDK安裝目錄中(
可以看到進程ID,選擇它,然后點擊"連接".這些ID必須都是用JDK1.6的java.exe啟動的,否則在列表里看不到.
JConsle能JVM監(jiān)控內(nèi)存,線程,類的數(shù)目和CPU然后點擊各個Tab可以看到詳細(xì)的輸出,詳細(xì)的輸出包括:
內(nèi)存:堆/非堆,峰值,內(nèi)存的各個部分,例如Perm,Eden等的大小曲線圖.
線程:峰值,所有線程的列表,堆棧跟蹤(哪個對象中的線程)等.還可以強制執(zhí)行GC.
類:峰值,類總數(shù)曲線圖.
MBean:一些JVM參數(shù)的詳細(xì)MBean信息.
JVM監(jiān)控遠(yuǎn)程進程
首先需要在運行的應(yīng)用上啟用遠(yuǎn)程管理,參數(shù)如下(簡單期間就不加用戶驗證了):
- java-Dcom.sun.management.jmxremote.port=1090-Dcom.sun.management.
- jmxremote.ssl=false-Dcom.sun.management.jmxremote.
- authenticate=false-jar../demo/jfc/Java2D/Java2Demo.jar
然后連接的時候選擇遠(yuǎn)程進程,地址輸入:localhost:1090
即可.當(dāng)然在別的電腦上(一般是局域網(wǎng))可以輸入那個電腦的IP.
綜述:使用JConsole可以簡單的JVM監(jiān)控Server狀態(tài),但是本身要占一定的資源,不過JVM自帶的JVM監(jiān)控,理論上講應(yīng)該是占資源很小很小的,可以用它來方便的了解Web服務(wù)器應(yīng)用進程的狀態(tài).如果要調(diào)優(yōu)應(yīng)用,還是使用JProfiler等工具更好一些,當(dāng)然它們占的資源也更大.
文章題目:JVM監(jiān)控在本地和遠(yuǎn)程的應(yīng)用
當(dāng)前地址:http://www.5511xx.com/article/djjpcip.html


咨詢
建站咨詢
