zoukankan      html  css  js  c++  java
  • JAVA(JDK)内存溢出分析工具(VISUALVM)

    标签: 操作类

     
     

    前言

    VisualVM:

    它是一个以监控、显示本地或者远程服务器 JVM工作情况,进行性能调优的工具。可以实现对JVM内存各个子池、CPU、垃圾收集器等方面进行监控,从而发现程序代码中潜在的泄露点和配置问题。

    问题浅出

    我们在写业务时有时候可能会出现一些莫名其妙的问题,比如内存溢出,换而言之就是内存实际大小不满足于当前执行的内存大小,从而造成某些东西不工作导致崩溃

    如何使用?

    jdk一搬都携带该工具,位置在jdk安装目录的bin目录里面
    例:

     双击打开之后安装GC插件

    紧接着打包你要进行监控的jar

    启动jar时务必设置好JVM参数以及OOM内存溢出日志输出目录

    1. 打包用于监控的jar包

    1. 用jvm参数以及oom参数启动

    说明(我这里是测试环境仅供参考)>
    -Xms100m 启动时占用内存为100
    -Xmx100m 最大支持内存占用为100
    -XX:HeapDumpPath=D:\logs 如果出现内存溢出即输出日志到logs目录下,文件名默认也行,你自己设置也可以
    -Dcom.sun.management.jmxremote.port=9999 模拟该jar包监控时远程调用接口,这里随便写一个不占用的端口即可
    -Djava.rmi.server.hostname=192.168.0.108 当前主机IP
    其它参数含义自行百度

    java -Dserver.port=5555 
    -Xms100m  
    -Xmx100m 
    -XX:+HeapDumpOnOutOfMemoryError 
    -XX:HeapDumpPath=D:\logs 
    -Dcom.sun.management.jmxremote=true 
    -Dcom.sun.management.jmxremote.port=9999 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Djava.rmi.server.hostname=192.168.0.108 
    -jar zuulServer.jar

    启动完成之后图形界面查看如下

     模拟内存溢出接口

     访问该接口输出dump日志文件在D盘logs目录下
    如图所示

     使用Visual-GC打开该文件分析
    流程:选择监控的jar点击装入然后选择目录筛选hprof选择日志文件打开

     打开之后如下图所示

     点击进入错误线程查看溢出问题
    此处查看得知68行出的问题,由此可查出问题所在

    收尾阶段

    这个我也是刚刚使用,太多的东西不太熟悉,先总结一篇以后慢慢修正,先入门再说咯!!!

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    Centos服务器搭建(3)——安装maven
    Centos服务器搭建(2)——安装tomcat
    Centos服务器搭建(1)——安装jdk
    mysql主从复制
    Json中返回换行符处理
    github pages 绑定域名
    SharePoint学习笔记——子页面
    SharePoint学习笔记——母版页
    SSH+Oracle的整合(SSH与Oracle整合坑巨多)
    SSH整合做CRUD(大神老师整理)
  • 原文地址:https://www.cnblogs.com/jijm123/p/15660964.html
Copyright © 2011-2022 走看看