zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言

JAVAJVM监控编程语言 详解 远程 运行 进行
2023-06-13 09:11:04 时间

最近项目中的仿真模块出现了java.lang.OutOfMemoryError:java heap space(内存不足)异常,简单查了一下,怀疑可能是内存泄露或者内存溢出;

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

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

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

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

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

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

JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言

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

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

JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言

二、检查JSTATD是否已经启动

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

JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言

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

JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言

  打开后输入ip,端口

JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言

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

 

 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16414.html

cjava