zoukankan      html  css  js  c++  java
  • 使用JMAP dump及分析dump文件

    查看整个JVM内存状态 
    jmap -heap [pid]
    要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起

    查看JVM堆中对象详细占用情况
    jmap -histo [pid]

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

    导出整个JVM 中内存信息

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

    jmap -dump:live,format=b,file=tai.dump pid
    jmap -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 信息

  • 相关阅读:
    在字符串中查找指定字符(15)
    说反话 (20)
    鼠标经过显示问题
    Java数据库连接池-proxool
    mysql中MAX()函数和count()函数的技巧使用
    Java中多线程问题
    eclipse开发文档模板
    方法调用中的别名问题
    php类的定义
    通知浏览器下载文件,而不是直接打开下载
  • 原文地址:https://www.cnblogs.com/AmilyWilly/p/8630179.html
Copyright © 2011-2022 走看看