jvisualvm的使用
jvisualvm的使用
VisuaIVM(All-in-One Java Troubleshooting Tool)是一款免費的,集成了多個 JDK 命令行工具的可視化工具,它提供強大的分析能力,對 Java 應用程序做性能分析和調優。這些功能包括生成和分析海量數據、跟蹤內存泄漏、監控垃圾回收器、執行內存和 CPU 分析,同時它還支持在 MBeans 上進行瀏覽和操作。是目前為止功能最強大的運行監測和故障處理工具。
1、Windows監控本地的JVM
1.1、首先需要配置JAVA環境
1.2、進入jvisualvm目錄,路徑:%JAVA_HOME%/bin下面的jvisualvm,雙擊jvisualvm.exe,彈出頁面
?1.3、在上面界面中的”本地”中,選擇需要監控的JAVA進程,點擊連接
監控:顯示的是當前系統的CPU、內存、類和線程的相關資源的使用情況。其中"堆dump"可以查看堆的詳細狀態,包括堆的概況,里面所有的類,還能點進具體的一個類查看這個類的狀態。
線程:能夠顯示線程的名稱和運行的狀態,在調試多線程時必不可少,而且可以點進一個線程查看這個線程的詳細運行情況
2、遠程監控JVM(Tomcat示例)
遠程服務器:centos7 ??中間件:Tomcat
3.1、服務端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" ?//關閉ssl認證
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" ?//關閉用戶密碼認證
其他jar包應用,在啟動文件中添加:
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監控
點擊”文件”,選擇“添加JMX連接”
?
?
jvisualvm使用密碼進行訪問
1、服務端配置中修改: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。進去將內容全部刪去,添加一行
monitorRole ?123456? ?//(用戶名,密碼)
controlRole ??123456 ?//(用戶名,密碼)
備注:monitorRole ?和monitorRole ?用戶已在jmxremote.access配置(模板)
3、將jmxremote.password和jmxremote.access改成600權限,和所屬該程序用戶
chmod 600 jmxremote.access ?jmxremote.password
4、jvisualvm使用用戶名和密碼訪問(例如:controlRole/123456)
?因為未配置SSL,所以這里選是
正常監控:
其他:如不輸入用戶名和密碼,會自動彈出需要用戶名和密碼
?
?
參考:https://www.jianshu.com/p/0308983dc04c
https://blog.csdn.net/qq_23986927/article/details/113242408
總結
以上是生活随笔為你收集整理的jvisualvm的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三阶魔方还原步骤图_3阶魔方教程 1~7
- 下一篇: arcgis js 4.x 地图中加入图