性能测试之JVM监控

Posted congyiwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试之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、验证监控

技术图片

 

 技术图片

 

以上是关于性能测试之JVM监控的主要内容,如果未能解决你的问题,请参考以下文章

性能测试监控策略汇总

JVM学习十二:JVM之性能监控工具

性能测试(测试指标监控策略汇总)

JVM性能调优监控工具专题一:JVM自带性能调优工具

JVM性能调优监控工具专题一:JVM自带性能调优工具

[系统性能优化实践]JVM进阶实战之监控工具(Prometheus)