您的当前位置:首页正文

使用JMAPdump及分析dump文件

2022-02-08 来源:客趣旅游网
使⽤JMAPdump及分析dump⽂件

查看整个JVM内存状态 jmap -heap [pid]

要注意的是在使⽤CMS GC 情况下,jmap -heap的执⾏有可能会导致JAVA 进程挂起查看JVM堆中对象详细占⽤情况jmap -histo [pid]

只打印活跃对象 jmap -histo[:live]

导出整个JVM 中内存信息

dump堆 当OLD区域占⽤⼤于90%的时候dump下来⽤MemoryAnalyzer分析⽤

jmap -dump:live,format=b,file=tai.dump pidjmap -dump:live,format=b,file=tai.dump 16733

jstack

jstack 是sun JDK ⾃带的⼯具,通过该⼯具可以看到JVM 中线程的运⾏状况,包括锁等待,线程是否在运⾏执⾏ jstack [pid] ,线程的所有堆栈信息

\"http-8080-10\" daemon prio=10 tid=x0a949bb60 nid=0x884 waiting for monitor entry [...]

\"http-8080-10\" 这个线程处于等待状态。 waiting for monitor entry 如果在连续⼏次输出线程堆栈信息都存在于同⼀个或多个线程上时,则说明系统中有锁竞争激烈,死锁,或锁饿死的想象。

“http-8080-11” daemon prio=10 tix=xxx nid=xxx in object.wait() [...] java.lang.Thread.State:waiting (on object monitor)

该表⽰http-8080-11的线程处于对象的Wait 上,等待其他线程的唤醒,这也是线程池的常见⽤法。“Low Memory Detector”daemon prio=10 tix=xx nid=xxx runnable [...] java.lang.Thread.State:runnable表⽰“Low Memory Detector” 的线程处于Runable状态,等待获取CPU的使⽤权.

查看Pid ⽂件

/proc/18225/status or io 信息

因篇幅问题不能全部显示,请点此查看更多更全内容