一、工具簡介
VisualVM,能夠監控線程,內存情況,查看方法的CPU時間和內存中的對象,已被GC的對象,反向查看分配的堆棧,從界面上看還是比較簡潔的,左邊是樹形結構,自動顯示當前本機所運行的Java程序,還可以添加遠程的Java VM,其中括號里面的PID指的是進程ID。OverView界面顯示VM啟動參數以及該VM對應的一些屬性。Monitor界面則是監控Java堆大小,Permgen大小,Classes和線程數量。
二、打開JVisualVM
1、打開JVisualVM
找到Jdkl安裝的路徑的bin路徑下,雙擊運行即可
1、顯示頁面如下
2、增加遠程監控--選擇遠程--右鍵增加 寫入需要監控的Linux的ip地址即可
方案描述:JVisualVM監控Linux有2種:1、JMX方式 2、Jstatd方式,兩者需要結合,本方案不設置安全賬戶密碼進行連接,工作中可以自行增加監控的賬號與密碼
三、JVisualVM監控Linux---JMX方式
JMX監控方式,缺陷:沒有GC監控功能
1、修改catalina.sh 文件,文件在你項目的tomcat目錄下
#!/bin/sh export JRE_HOME=/usr/local/jdk1.7.0_80 JAVA_OPTS='-Xms""m -Xmx""xm -XX:PermSize=""m -XX:MaxPermSize=""m -Djava.rmi.server.hostname=你服務器的ip -Dcom.sun.management.jmxremote.port=10001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false '
主要增加的是從你服務器ip及往下的內容
2、在tomcat lib目錄中增加jar包:catalina-jmx-remote.jar
3、防火牆開啟10001端口,指令如下:按照順序執行即可
systemctl start firewalld ##開啟防火牆 firewall-cmd --add-port=10001/tcp --permanent ##永久添加10001端口 firewall-cmd --add-port=10002/tcp --permanent ##永久添加10002端口 firewall-cmd --add-port=10003/tcp --permanent ##永久添加10003端口 firewall-cmd --add-port=1099/tcp --permanent ##永久添加1099端口 firewall-cmd --list-ports ##列出開放的端口 systemctl stop firewalld ##關閉防火牆
4、驗證是否可以監控--成功
四、JVisualVM監控Linux---Jstatd方式
Jstatd監控方式,缺陷:沒有cpu監控畫面
1、修改jdk配置文件--/usr/local/jdk1.7.0_80/jre/lib/security 下的java.policy文件--------------------具體路徑根據你的服務器路徑來
在文件末位的 }; 前添加
permission java.security.AllPermission;
進入到jdk的bin目錄下啟動jstatd
./jstatd -J-Djava.security.policy=all.policy -p 10003 &
2、驗證監控