概要
因為項目最后部署在阿里雲雲服務器上,所以分析性能不是很方便。 但是可以通過 VisualVM 遠程監控 Tomcat , 以便性能分析。
可以看到CPU使用率, 獲取堆棧快照, 手動堆棧回收, 死鎖線程分析等等, 還可以安裝其他插件。
本文將記錄配置過程, 以便自己后續用到查看。
配置過程
配置startup.sh文件
在$CATALINA_HOME/bin/startup.sh 倒數第二行(也就是exec "$PRGDIR"/"$EXECUTABLE" start "$@"一行上邊)寫入下面的內容:
1 export CATALINA_OPTS="$CATALINA_OPTS 2 -Dcom.sun.management.jmxremote 3 -Djava.rmi.server.hostname=*.*.*.* YOUR SERVER IP 4 -Dcom.sun.management.jmxremote.port=7003 5 -Dcom.sun.management.jmxremote.ssl=false 6 -Dcom.sun.management.jmxremote.authenticate=true 7 -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 8 -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
截個圖, 看看startup.sh最后20行的數據。
參數說明:
-Dcom.sun.management.jmxremote 啟用JMX遠程監控 -Djava.rmi.server.hostname=*.*.*.* 你的tomcat服務器IP地址 -Dcom.sun.management.jmxremote.port=8003 jmx連接端口 -Dcom.sun.management.jmxremote.ssl=false 是否ssl加密 -Dcom.sun.management.jmxremote.authenticate=true 遠程連接需要密碼認證 -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 指定連接的用戶名和密碼配置文件 -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access 指定連接的用戶所擁有權限的配置文件
創建賬號密碼和權限配置文件
關於jmxremote.access和jmxremote.password 這兩個文件jdk中已經有了,
把這兩個文件復制到 $CATALINA_HOME/conf/ 目錄下,修改一下名稱
文件內容如下:
[root@localhost tomcat8]# cat conf/jmxremote.password
monitorRole 111111
controlRole 222222
[root@localhost tomcat8]# cat conf/jmxremote.access
monitorRole readonly
controlRole readwrite
修改jmxremote.password權限
[root@localhost tomcat8]# chmod 600 conf/jmxremote.password
然后, 重啟Tomcat使之生效。
運行自己的JVisualVM
jvisualVM的可執行文件位置如下:
添加主機
遠程,添加主機,輸入服務器的ip:
"右鍵"->"添加JMX連接", 添加JMX連接和登陸驗證
完成,可以顯示了