VisualVM,可以監控線程,內存狀況,查看方法的CPU時間和內存中的對象,已被GC的對象,反向查看分配的堆棧,從界面上看仍是比較簡潔的,左邊是樹形結構,自動顯示當前本機所運行的Java程序,還能夠添加遠程的Java VM,其中括號裏面的PID指的是進程ID。OverView界面顯示VM啓動參數以及該VM對應的一些屬性。Monitor界面則是監控Java堆大小,Permgen大小,Classes和線程數量。java
一、打開JVisualVMtomcat
找到Jdkl安裝的路徑的bin路徑下,雙擊運行便可安全
一、顯示頁面以下服務器
二、增長遠程監控--選擇遠程--右鍵增長 寫入須要監控的Linux的ip地址便可tcp
方案描述:JVisualVM監控Linux有2種:一、JMX方式 二、Jstatd方式,二者須要結合,本方案不設置安全帳戶密碼進行鏈接,工做中能夠自行增長監控的帳號與密碼工具
JMX監控方式,缺陷:沒有GC監控功能spa
一、修改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及往下的內容3d
二、在tomcat lib目錄中增長jar包:catalina-jmx-remote.jarcode
三、防火牆開啓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 ##關閉防火牆
四、驗證是否能夠監控--成功
Jstatd監控方式,缺陷:沒有cpu監控畫面
一、修改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 &
二、驗證監控