【JVM】JSTATD结合Java VisualVM进行远程监控JVM运行情况(二)

本文介绍了Java中的内存泄露与内存溢出的区别,并详细讲解了如何使用JDK自带的工具JSTATD和Java VisualVM进行远程监控,帮助开发者更好地理解及解决Java应用中的内存问题。

内存泄露指的是程序中动态分配内存给一些临时对象,但是对象不会被GC(java垃圾回收机制gabage collection)所回收,它始终占用内存。即被分配的对象很大但已无用

内存溢出指的是程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况;

从定义上可以看出内存泄露内存溢出的一种诱因,不是唯一因素;

有时单单从代码上很难知道是哪里的问题,所以需要借助一下JDK提供的工具,实时了解程序中的资源的使用情况,JDK为我们提供了JSTATD和Java VisualVM进行远超监控:

  、启动JSTATD:

        cd /usr/local/java/jdk1.8.0_121/bin;

        mkdir jstatd.all.policy;    --新建文件(其实目录可以自己选择)键入一下代码用于启动JSTATD:

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

  

  保存;然后使用以下命令启动JSTATD:

  jstatd -J-Djava.security.policy=/jstatd.all.policy文件的目录/jstatd.all.policy -p 端口号(用于Java VisualVM远程链接)

  eg:jstatd -J-Djava.security.policy=/usr/local/java/jdk1.8.0_121/bin/jstatd.all.policy -p 12345

  、检查JSTATD是否已经启动

  键入 jps ,如果看到jstatd已经起来了,说明启动成功;

  

  三、在本地JDK的安装目录下bin目录,找到jvisualvm.exe文件双击打开,

  

   打开后输入ip,端口

  

  然后我们就可以实时的进行监控了

转载于:https://my.oschina.net/xiaohai945/blog/1860079

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值