性能测试之JVM监控
一、工具简介
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、验证监控