應用伺服器端的配置
對pod的中執行的服務開啟jmx並配置堆溢位記錄日誌
#jvm引數部分可透過環境變數(JAVA_OPTS)配置,前提時Dockerfile 啟動時需引用JAVA_OPTS變數
#注意此處監聽10001埠
java
-javaagent:/tools/tingyun-agent-java.jar
-Djava.rmi.server.hostname=192.168.10.133
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.rmi.port=10001
-Dcom.sun.management.jmxremote.port=10001
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/gclog/iot.hprof
-XX:NewRatio=2 -Xms512m -Xmx1792m
-Dspring.profiles.active=prod
-jar demo.jar
#啟動命令-jar引數要在最後,否則可能無法開啟監控埠
當容器執行起來之後透過webshell開啟jstatd服務,jmx和jstatd的另外兩個隨機埠
#注意此處監聽10003埠
nohup /opt/jdk/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -p 10003 -J-Djava.rmi.server.hostname=192.168.10.133 -J-Djava.rmi.server.logCalls=true &
#安裝net工具
yum install -y net-tools
#查詢隨機埠,我的測試時為44517、39038
netstat -tlnp
#tcp 0 0 0.0.0.0:44517 0.0.0.0:* LISTEN 1/java
#tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1/java
#tcp 0 0 0.0.0.0:10001 0.0.0.0:* LISTEN 1/java
#tcp 0 0 0.0.0.0:10003 0.0.0.0:* LISTEN 175/jstatd
#tcp 0 0 0.0.0.0:39038 0.0.0.0:* LISTEN 175/jstatd
注意: 在k8s管理端透過port-forward 轉發10001、10003、44517、39038四個埠
#根據pod名稱做port-forward,其中ip為k8s叢集任意一個節點ip,在jvm引數中也需要將IP配置成k8s叢集任意一個節點ip;且兩邊需保持相同
#kubectl port-forward {pod_name} -n {namespace} --address {與-Djava.rmi.server.hostname相同} 10001:10001
nohup kubectl port-forward docker-iot-api-ciot-blue-78fbb688d7-lgdpz 10001:10001 -n cserver-iot --address 192.168.10.133 &
nohup kubectl port-forward docker-iot-api-ciot-blue-78fbb688d7-lgdpz 10003:10003 -n cserver-iot --address 192.168.10.133 &
nohup kubectl port-forward docker-iot-api-ciot-blue-78fbb688d7-lgdpz 44517:44517 -n cserver-iot --address 192.168.10.133 &
nohup kubectl port-forward docker-iot-api-ciot-blue-78fbb688d7-lgdpz 39038:39038 -n cserver-iot --address 192.168.10.133 &
監控端的操作(Windows)
執行jvisualvm
在cmd中輸入jvisualvm命令開啟jvisualvm介面或者在jdk的bin目錄下開啟jmc.exe
新增 visual Gc 外掛
blog.csdn.net/shuai825644975/artic...
jvisualvm展示介面
新增jstatd和JMX連線
右鍵點選“遠端”–> “新增遠端主機”(輸入192.168.10.133) –>“高階設定”(jstatd埠設定為10003)–>確定
右鍵點選 “192.168.10.133主機“ –> “新增JMX連線” –> 輸入連線資訊(新增埠 100001)–> 確定
主介面和抽樣器介面展示
開始記錄後訪問業務使其產生記錄資料
eg: 點選如圖所示 “CPU” 開始記錄,然後就不停透過多租戶域名訪問virgo-tomcat中部署的業務模組使其產生監控資料
快照功能
可以拍攝“快照”,儲存這一時間段的監控資料,並透過 “組合” 檢視方法的呼叫過程
拍攝“快照”
visual Gc 觀測展示
問題診斷相關參考
blog.csdn.net/mnasd/article/detail...
blog.csdn.net/clypm/article/detail...
www.cnblogs.com/ws1149939228/p/124...
www.cnblogs.com/mlfz/p/11778612.ht...
本作品採用《CC 協議》,轉載必須註明作者和本文連結