idea本地连接jmx,以及liunx远程导入.dump快照

本文介绍了如何在Linux环境下通过JMX技术远程监控Java应用,包括设置JMX远程连接参数,使用`jps`和`jmap`命令获取堆dump文件,以及利用JVisualVM分析内存占用情况以解决OOM问题。
摘要由CSDN通过智能技术生成

在编写项目项目时难免会遇到oom异常(Out of Memory),​​​​​线上linux排查可以查看这篇文章
linux上项目cpu非常高排查

本地和远程都能使用到了JMX,JMX(Java Management Extensions)是Java平台的一项管理和监控技术,

1. 本地idea连接jmx

上图这输入VM参数。复制下面的参数

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8849 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost

这里是为了解释这些参数的意思,不要复制使用。

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=8849 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Djava.rmi.server.hostname=localhost
  1. -Dcom.sun.management.jmxremote:启用JMX远程管理功能。该参数告诉JVM启用JMX代理以便远程监控和管理。

  2. -Dcom.sun.management.jmxremote.port=8849:指定JMX远程连接的端口号。在这个例子中,JMX远程连接的端口号为8849。当通过JMX工具连接到JVM时,需要指定该端口号。

  3. -Dcom.sun.management.jmxremote.authenticate=false:设置JMX远程连接时是否需要进行身份验证。在这个例子中,身份验证被禁用(false),即不需要提供用户名和密码进行身份验证。

  4. -Dcom.sun.management.jmxremote.ssl=false:设置JMX远程连接是否启用SSL加密。在这个例子中,SSL加密被禁用(false),即JMX连接不会使用SSL加密。

  5. -Djava.rmi.server.hostname=localhost:指定RMI服务的主机名。在这个例子中,RMI服务的主机名被设置为localhost。这个参数用于确保JMX连接可以正确地建立,通信的时候使用的是正确的IP地址或主机名。

设置好之后就启动项目!

设置好之后就启动项目!

找到jdk自带的工具

在jdk下的bin目录中。

填写端口就点确定。

名称是有包名组成

进去之后能看到他堆,cpu,线程等数据的情况。

2.linux上导出快照

使用 jps命令来列出当前系统中所有Java进程及其对应的进程PID

使用jmap命令导出Heap dump文件。假设你要导出的Java进程的PID为2976,可以使用以下命令:

jmap -dump:format=b,file=java_heap_dump.hprof 2976

他就会在当前目录生成java_heap_dump.hprof文件,这时就要下载这个文件

下载文件的方法有很多种,如果是宝塔面板或者FinalShell就能直接下载,否则就要去下载ftp服务

3.使用hprof文件

打开本地jdk文件中的bin文件夹,下面有个jvisualvm.exe

点击文件然后点装入

类型选择堆这个。

点击类,能看占用情况。点进去能看到具体实例。看到为什么会占用这么多实例,导致的OOM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值