蒙城做網(wǎng)站的公司百度手機助手下載正版
Java web應用性能分析之【java進程問題分析概敘】-CSDN博客
Java web應用性能分析之【java進程問題分析工具】-CSDN博客
? ? ? ? 前面整理了java進程問題分析和分析工具,現(xiàn)在可以詳細看看jvisualvm的使用,一般java進程都是部署云服務器,或者托管IDC機房。手里有一臺阿里云主機,剛好用來做實驗。配置jvisualvm連接阿里云主機,分為兩步。
1.配置jmxremote
-Djava.rmi.server.hostname=39.99.211.248 阿里云主機這個公網(wǎng)ip一定要顯示加上去
-Dcom.sun.management.jmxremote 啟用jmxremote
-Dcom.sun.management.jmxremote.port=8899 jmx遠程連接時使用的端口,設置成任意未被占用的端口即可
-Dcom.sun.management.jmxremote.rmi.port=8899
-Dcom.sun.management.jmxremote.authenticate=true 否需要身份認證,設置為false不需要用戶名和密碼
-Dcom.sun.management.jmxremote.ssl=false 是否使用ssl,ssl是一個通信加密的安全協(xié)議,不啟用
-Dcom.sun.management.jmxremote.password.file=/usr/local/soft/jmxremote.password 登錄密碼
-Dcom.sun.management.jmxremote.access.file=/usr/local/soft/jmxremote.access 登錄賬號如果設置為true則需要額外配置以下2個參數(shù)
Dcom.sun.management.jmxremote.access.file:access文件
[root@phost ~]# vim /usr/local/soft/jmxremote.access //任意目錄下創(chuàng)建access文件
zhouxx readwrite //格式為: 用戶名 (空格)權限
Dcom.sun.management.jmxremote.access.file:密碼文件
[root@phost ~]# vim /usr/local/soft/jmxremote.password //創(chuàng)建密碼文件
zhouxx 123456 //格式為: 用戶名 (空格) 密碼
java進程的jvm參數(shù)配置示例:
JAVA_OPTS=" -server -Dfile.encoding=UTF-8 -Djava.rmi.server.hostname=39.99.211.248 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8899 -Dcom.sun.management.jmxremote.rmi.port=8899 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/usr/local/soft/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/usr/local/soft/jmxremote.access -Dapp.config=/home/web/demo/application.yaml -Xms64m -Xmx64m -Xmn64m -Xss1m -XX:MetaspaceSize=16m -XX:MaxMetaspaceSize=64m -XX:+UseConcMarkSweepGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintCommandLineFlags -Xloggc:log/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log/"
JAVA_OPTS=" -server -Dfile.encoding=UTF-8 -Djava.rmi.server.hostname=39.99.211.248 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8899 -Dcom.sun.management.jmxremote.rmi.port=8899 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/usr/local/soft/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/usr/local/soft/jmxremote.access -Dapp.config=/home/web/demo/application.yaml -Xms64m -Xmx64m -Xss1m -XX:MetaspaceSize=16m -XX:MaxMetaspaceSize=64m -XX:+UseG1GC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintCommandLineFlags -Xloggc:log/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log/"java $JAVA_OPTS -jar mydemo-1.0.0-SNAPSHOT.jar
2.開端口:開阿里云端口和服務器上防火墻端口
2.1開阿里云端口
為什么是全端口開發(fā)1-65535,而不是只開8899端口?
????????因為jmx不僅僅只啟用8899端口,還會隨機再起一個端口,如當前15641進程還開啟了45919,這個端口不固定,所以只能針對117.147.118.199客戶端全開放。
2.2 ubuntu的防火墻端口:ufw allow from ?117.147.118.199
3.jvisualvm遠程連接服務器上的java進程,監(jiān)控java進程狀態(tài)
基本參數(shù)信息,相當于jps和jinfo
監(jiān)控cpu、堆內存、元空間、類加載、線程等信息
線程信息:相當于jstack,也可以導出線程dump文件
抽樣器:相當于jstack、jmap、jhat
快照信息
buffer pool監(jiān)控
jconsole插件
visual GC:相當于jstat
提示 “不受此jvm支持”
參考:jvisualvm 連接 jstatd 遠程監(jiān)控 jvm 或 Visual GC提示"不受此JVM支持“_虛擬機 jvisualvm 不受此jvm-CSDN博客
Tracer:同樣是cpu、堆、元空間、類加載、線程等的監(jiān)控
4.jvisualvm分析jvm的dump文件
????????jvisualvm通過分析dump文件,定位oom問題、cpu飆高問題、大內存對象問題等等