Jmap(java9取消了)与jvisualvm -Jhsdb

Jmap 

jmap -heap 388  

Attaching to process ID 388, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.51-b03

using thread-local object allocation.
Parallel GC with 13 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 8422162432 (8032.0MB)
   NewSize                  = 175112192 (167.0MB)
   MaxNewSize               = 2807037952 (2677.0MB)
   OldSize                  = 351272960 (335.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 132120576 (126.0MB)
   used     = 109740992 (104.65716552734375MB)
   free     = 22379584 (21.34283447265625MB)
   83.06124248201886% used
From Space:
   capacity = 21495808 (20.5MB)
   used     = 0 (0.0MB)
   free     = 21495808 (20.5MB)
   0.0% used
To Space:
   capacity = 21495808 (20.5MB)
   used     = 0 (0.0MB)
   free     = 21495808 (20.5MB)
查看所有对象,包括活跃以及非活跃的
jmap -histo <pid> | more
查看活跃对象 会触发 fullgc
jmap -histo:live <pid>|more

内存使用情况dump到文件中

用法:jmap -dump:format=b,file=dumpFileName <pid>

jmap -dump:format=b,file=heapdump.hprof 12345

要想获取java堆Dump,除使用jmap外,还有以下方法

  • 使用-XX:+HeapDumpOnOutOfMemoryError,让虚拟机在OOM异常出现后自动生成堆Dump文件
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/heapdump.hprof -jar yourapp.jar
  • 在Linux操作系统下,发送kill -3 pid命令
  • 对于Spring Boot应用,也可以使用Spring Boot Actuator提供的/actuator/heapdump实现堆Dump

jvisualvm

java -Dcom.sun.management.jmxremote.port=8999(jmx连接端口号) 
     -Dcom.sun.management.jmxremote.rmi.port=8999 
     -Dcom.sun.management.jmxremote.ssl=false 
     -Dcom.sun.management.jmxremote.authenticate=false 
     -Djava.rmi.server.hostname=xxx.xx.xx.xx(ip地址) -jar -Xms2g -Xmx2g mall.jar
JAVA_OPTS=“-server -Xms3072m -Xmx3072m -Xmn1152m -XX:PermSize=128M -XX:MaxPermSize=256M -Dfile.encoding=UTF8
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=5555
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false”
其中“Dcom.sun.management.jmxremote.port=5555”,设置的5555是linux中该端口未被占用的端口
-Djava.rmi.server.hostname=127.0.0.1 ,该地址设置为该服务的地址

参数解释:
-Dcom.sun.management.jmxremote:是否支持远程JMX访问,默认true;
-Dcom.sun.management.jmxremote.port:是JMX远程监控端口号,需要在防火墙开放该端口;
-Dcom.sun.management.jmxremote.ssl=false:表示是否对连接开启SSL加密,默认开启;
-Dcom.sun.management.jmxremote.authenticate=false :是否需要开启用户认证,默认开启,如果开启需要额外配置授权文件;
-Djava.rmi.server.hostname=192.168.184.129:远程服务器的主机名;

Jhsdb

jhsdb jmap --heap --pid 37340
jhsdb jmap --pid 37288
jhsdb jmap --histo --pid 37340
jhsdb jmap --binaryheap --pid 37340

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值