使用visualvm遠端監控JVM LINUX tomcat伺服器與客戶端配置方法
VisualVM 是一款免費的效能分析工具。它通過 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多種方式從程式執行時獲得實時資料,從而進行動態的效能分析。同時,它能自動選擇更快更輕量級的技術儘量減少效能分析對應用程式造成的影響,提高效能分 析的精度。
本文將對 VisualVM如何快速上手使用編寫一個shell指令碼,大家只需要將其放到tomcat的bin目錄中即可使用。本文例項使用的linux環境。shell指令碼程式碼如下:
#!/bin/sh #website為linux系統配置檔案的一個路徑,具體以自己部署的環境為準 cat /website/config/nac_sys.conf | grep "manager">>/dev/null if [ $? == 0 ];then ETH=`cat /website/config/nac_sys.conf | grep "manager"|awk '{print $2}'` else ETH="eth0" fi serverip=`ifconfig $ETH|egrep "inet addr:"|cut -d ":" -f2|awk '{print $1}'` #serverip為linux伺服器的出口ip JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=$serverip"
或者也可以將
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=自己的linux伺服器的ip"
加入到tomcat的bin目錄中的Catalina.sh最後,重啟tomcat即可。如果是檢測本地的程式,直接開啟jdk(jdk1.6以上自帶 jvisualvm.exe)安裝目錄中jre/bin/jvisualvm.exe的程式,雙擊本地的VisualVM即可實現監控。
這幾個配置的說明如下:
-Dcom.sun.management.jmxremote.port:這個是配置遠端connection的埠號的,要確定這個埠沒有被佔用
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false:這兩個是固定配置,是JMX的遠端服務許可權的
-Djava.rmi.server.hostname:這個是配置server的IP的,要使用server的IP最好在機器上先用hostname –i看一下IP是不是機器本身的IP,如果是127.0.0.1的話要改一下,否則遠端的時候連不上,目前我們的server上我已經都改好了
注意:如果不能實現遠端監控,請檢視伺服器上tomcat啟動後是否有配置的1099(預設埠)埠正在監聽。還有注意關閉遠端主機的防火牆(iptables)。
執行效果如下: