jvisualvm的使用
jvisualvm的使用
VisuaIVM(All-in-One Java Troubleshooting Tool)是一款免費(fèi)的,集成了多個(gè) JDK 命令行工具的可視化工具,它提供強(qiáng)大的分析能力,對 Java 應(yīng)用程序做性能分析和調(diào)優(yōu)。這些功能包括生成和分析海量數(shù)據(jù)、跟蹤內(nèi)存泄漏、監(jiān)控垃圾回收器、執(zhí)行內(nèi)存和 CPU 分析,同時(shí)它還支持在 MBeans 上進(jìn)行瀏覽和操作。是目前為止功能最強(qiáng)大的運(yùn)行監(jiān)測和故障處理工具。
1、Windows監(jiān)控本地的JVM
1.1、首先需要配置JAVA環(huán)境
1.2、進(jìn)入jvisualvm目錄,路徑:%JAVA_HOME%/bin下面的jvisualvm,雙擊jvisualvm.exe,彈出頁面
?1.3、在上面界面中的”本地”中,選擇需要監(jiān)控的JAVA進(jìn)程,點(diǎn)擊連接
監(jiān)控:顯示的是當(dāng)前系統(tǒng)的CPU、內(nèi)存、類和線程的相關(guān)資源的使用情況。其中"堆dump"可以查看堆的詳細(xì)狀態(tài),包括堆的概況,里面所有的類,還能點(diǎn)進(jìn)具體的一個(gè)類查看這個(gè)類的狀態(tài)。
線程:能夠顯示線程的名稱和運(yùn)行的狀態(tài),在調(diào)試多線程時(shí)必不可少,而且可以點(diǎn)進(jìn)一個(gè)線程查看這個(gè)線程的詳細(xì)運(yùn)行情況
2、遠(yuǎn)程監(jiān)控JVM(Tomcat示例)
遠(yuǎn)程服務(wù)器:centos7 ??中間件:Tomcat
3.1、服務(wù)端Tomcat配置
1、Tomcat的catalina.sh需要配置,重啟tomcat
| JAVA_OPTS="$JAVA_OPTS ?-Djava.rmi.server.hostname=10.1.1.145" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.port=9000" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.rmi.port=9000" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.ssl=false" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.authenticate=false" |
備注
JAVA_OPTS="$JAVA_OPTS ?-Djava.rmi.server.hostname=10.1.1.145" ??//指定jconsole連接的IP
JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.port=9000" //指定jconsole連接端口
JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.rmi.port=9000" ?//這句一定要添加,不添加就無法成功
JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.ssl=false" ?//關(guān)閉ssl認(rèn)證
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" ?//關(guān)閉用戶密碼認(rèn)證
其他jar包應(yīng)用,在啟動(dòng)文件中添加:
nohup java -Djava.rmi.server.hostname=10.1.1.145 ?-Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.rmi.port=9000 -Dcom.sun.management.jmxremote.ssl=false ?-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar ???xxx.jar &
2、修改/etc/hosts
注釋掉127.0.0.1 ?
新增:10.1.1.145 ?localhost localhost.localdomain
3、查看9000端口是否有
$netstat -ntlp
4、jvisualvm監(jiān)控
點(diǎn)擊”文件”,選擇“添加JMX連接”
?
?
jvisualvm使用密碼進(jìn)行訪問
1、服務(wù)端配置中修改:authenticate=true
? ?-Dcom.sun.management.jmxremote.authenticate=true
? ?-Dcom.sun.management.jmxremote.pwd.file= ????//指定正確的密碼文件
| JAVA_OPTS="$JAVA_OPTS ?-Djava.rmi.server.hostname=10.1.1.145" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.port=9000" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.rmi.port=9000" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.ssl=false" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.authenticate=true" JAVA_OPTS="$JAVA_OPTS ?-Dcom.sun.management.jmxremote.pwd.file=/home/cg/java/jdk1.8.0_221/jre/lib/management/jmxremote.password" |
2、將Jdk/jre/lib/management下的jmxremote.password.template,拷貝一份叫jmxremote.password。進(jìn)去將內(nèi)容全部刪去,添加一行
monitorRole ?123456? ?//(用戶名,密碼)
controlRole ??123456 ?//(用戶名,密碼)
備注:monitorRole ?和monitorRole ?用戶已在jmxremote.access配置(模板)
3、將jmxremote.password和jmxremote.access改成600權(quán)限,和所屬該程序用戶
chmod 600 jmxremote.access ?jmxremote.password
4、jvisualvm使用用戶名和密碼訪問(例如:controlRole/123456)
?因?yàn)槲磁渲肧SL,所以這里選是
正常監(jiān)控:
其他:如不輸入用戶名和密碼,會自動(dòng)彈出需要用戶名和密碼
?
?
參考:https://www.jianshu.com/p/0308983dc04c
https://blog.csdn.net/qq_23986927/article/details/113242408
總結(jié)
以上是生活随笔為你收集整理的jvisualvm的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三阶魔方还原步骤图_3阶魔方教程 1~7
- 下一篇: arcgis js 4.x 地图中加入图