美文网首页JVM学习
JVM 学习(用 VisualVM监控JVM内存和GC情况)

JVM 学习(用 VisualVM监控JVM内存和GC情况)

作者: wuffy | 来源:发表于2018-07-23 18:19 被阅读0次

1.0VisualVM介绍

VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用、JVM堆内存消耗、线程、类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助。相比jdk自带的其他CUI工具,提供更为直观的展示

启动VisualVM分为两种方式

1:是启动 $JAVA_HOME/bin 下的jvisualvm
2:下载单独的应用程序,这里选用单独的程序

2.0 下载安装VisualVM介

下载地址 https://visualvm.github.io/download.html
启动界面如下图

3.0 使用VisualVM

首先下载安装Visual GC插件用于统计GC情况

连接本地java程序

打开本地的java程序可以看到在local目录下有对应的程序,选择对应的程序就进入监控界面,打开Visual GC选项卡就能直观的查看 该程序的GC情况
有对应的 Eden S0 S1 和Old MetaSpace 各个内存的使用情况统计
类编译事件,加载类统计,新生代,老年代的GC次数和耗时

连接远程程序

我们肯定是要监控运行在服务器上的Java程序的使用情况,连接远程的JVM有两种方法

使用JMX 使用方法请参考其他文章
在服务器上启动 Jstatd 服务 ,需要稍作配置

cd $JAVA_HOME/jre/lib/security
vim  jstatd.all.policy 

将下面的写入刚创建的文件 ,文件的位置可以随意,但是需要的启动的时候指定该文件的绝对路径

grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermission;
};

启动jstantd,这里参数Djava.security.policy后面值就是上一步创建文件的路径

jstatd -J-Djava.security.policy=jstatd.all.policy & 后台方式启动
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.22.249 指定主机名

后面可以指定你要传入的参数,启动有问题请参考 jstatd命令说明

在 VisualVM的 Remote 中就可以连接远程的主机
最终效果 如下图

屏幕快照 2019-02-23 下午9.24.57.png

工具只是辅助我们分析,真正起作用还需要我们用自己的知识分析

相关文章

  • JVM 学习(用 VisualVM监控JVM内存和GC情况)

    1.0VisualVM介绍 VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用、JV...

  • 使用工具jstat和jmap

    监控jvm进程状态 jstat jstat -gc pid {间隔时间} {次数} 监控gc情况 堆内存情况 du...

  • java(内存和gc)

    JVM内存和gc机制JVM内存 Java垃圾回收概况 Java GC(Garbage Collection,垃圾收...

  • 工具

    查看当前运行的jvm线程号等信息jps,增强版jcmd查看jvm的gc实时监控统计信息jstat查看jvm的堆内存...

  • Java基础

    JVM内存 1、JVM 内存管理和GC知识概述和总结(20190711) https://www.atatech....

  • Java性能监控——Visual VM

    VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈...

  • JVM

    简介 Jvm 系列一:Java类的加载机制Jvm系列二:JVM内存结构 --内存泄漏与内存溢出Jvm系列三:GC算...

  • Java知识图谱

    Java基础 JVM JVM内存模型和结构 GC原理&内存分配策略 性能调优:Thread Dump class ...

  • JVM性能调优的6大步骤,及关键调优参数详解

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC ...

  • Java架构师面试题——JVM性能调优

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC ...

网友评论

    本文标题:JVM 学习(用 VisualVM监控JVM内存和GC情况)

    本文链接:https://www.haomeiwen.com/subject/benjmftx.html