Java内存诊断工具

传统的Java诊断工具:

1、jconsole

控制台输入 :jconsole

    在jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplicationStopedTime -Xloggc:文件路径

用法: jconsole [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]

  -interval   将更新间隔设置为 n 秒 (默认值为 4 秒)
  -notile     初始不平铺窗口 (对于两个或多个连接)
  -pluginpath 指定 jconsole 用于查找插件的路径
  -version    输出程序版本

  connection = pid || host:port || JMX URL (service:jmx:<协议>://...)
  pid         目标进程的进程 ID
  host        远程主机名或 IP 地址
  port        远程连接的端口号

  -J          指定运行 jconsole 的 Java 虚拟机
              的输入参数
 

2、jmap

控制台输入:jmap dump 进程号

  示例: 

jmap -dump:live,format=b,file=heap.bin 32765
Dumping heap to /home/app/heap.bin ...
Heap dump file created

根据 ps -ef | grep java

查出相应进程号

UID       PID       PPID      C     STIME    TTY       TIME         CMD

zzw      14124   13991      0     00:38      pts/0      00:00:00    grep --color=auto dae

强烈推荐,先用jmap导出服务器端的jvm的堆dump文件,然后再用jhat,或者jvisualvm,或者eclipse内存分析器来分析内存状况。

jhat用法:

jhat -J -Xmx512m [file] ,file就是dump文件路径

jmap -dump:live,format=b,file=heap.bin 32765
Dumping heap to /home/app/heap.bin ...
Heap dump file created

jvisualvm用法:

jstat用法:

jstat -gc 进程号 刷新间隔(毫秒)

jstat -gc 32765 10000
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
6144.0 6144.0 721.7   0.0   161280.0 38634.0   349696.0   80956.7   99160.0 95515.4 11392.0 10728.2   3916   31.250   7      1.959   33.208
6144.0 6144.0 721.7   0.0   161280.0 40814.6   349696.0   80956.7   99160.0 95515.4 11392.0 10728.2   3916   31.250   7      1.959   33.208
6144.0 6144.0 721.7   0.0   161280.0 55392.7   349696.0   80956.7   99160.0 95515.4 11392.0 10728.2   3916   31.250   7      1.959   33.208
6144.0 6144.0 721.7   0.0   161280.0 56871.1   349696.0   80956.7   99160.0 95515.4 11392.0 10728.2   3916   31.250   7      1.959   33.208
6144.0 6144.0 721.7   0.0   161280.0 58650.5   349696.0   80956.7   99160.0 95515.4 11392.0 10728.2   3916   31.250   7      1.959   33.208
 

jstat -gcutil 进程号

jstat -gcutil 32765
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
 11.75   0.00  64.75  23.15  96.32  94.17   3916   31.250     7    1.959   33.208

分析GC情况

Arthas----强无敌

https://alibaba.github.io/arthas/

猜你喜欢

转载自blog.csdn.net/lbh199466/article/details/89668962
今日推荐