JSTATD结合Java VisualVM进行远程监控JVM运行情况详解编程语言
最近项目中的仿真模块出现了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:
jstatd -J-Djava.security.policy=/jstatd.all.policy文件的目录/jstatd.all.policy -p 端口号(用于Java VisualVM远程链接)
二、检查JSTATD是否已经启动
键入 jps ,如果看到jstatd已经起来了,说明启动成功;
三、在本地JDK的安装目录下bin目录,找到jvisualvm.exe文件双击打开,
打开后输入ip,端口
然后我们就可以实时的进行监控了
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16414.html
cjava相关文章
- JVM初探(一):jvm内存结构[通俗易懂]
- Java-线程池面试题
- java pfx_如何在Java中读取.pfx文件的内容?
- java axis_Java 使用Axis实现WebService实例
- JAVA的使用_Java集成开发环境
- java渗透测试框架_java编程
- jvm的垃圾回收器_java 垃圾回收器
- Spring Boot Vue全栈开发实战_java web前端
- java 事务嵌套_Java事务以及嵌套事务[通俗易懂]
- Github上热搜的Java开源商城项目合集,这个是真的好
- java: 自定义java.util.logging.Logger的日志输出格式,输出IDE(ECLIPSE)能自动识别行号的格式
- Java 近期新闻:Classfile API 草案、Spring Boot、GlassFish、Reactor 项目
- 使用java NIO进行读文件详解编程语言
- Java实现简单的数据库连接池代码详解编程语言
- Redis集群集成Spring在Java中的使用详解编程语言
- 使用Java在Linux系统上开发:一步步安装全部组件(java环境linux)
- 解决Linux下重启Java程序的方法(linux重启java)
- 服务器使用Java进行Linux服务器监控(java监控linux)
- 解析Java中的Linux路径(java中linux路径)
- 策略解决Java中Redis数据过期策略研究(redisjava过期)
- 机制Redis Java的过期机制实现方法(redisjava过期)
- 应用Linux监控下Java应用性能分析(linux监控java)
- Linux上善用Java:实现智能开发(linux 运行java)
- Java锁表与Oracle数据库协调实现数据安全(java锁表oracle)