1. jstat 
    这个命令对于查看Jvm的堆栈信息很有用。能够查看eden,survivor,old,perm等heap的capacity,utility信息

对于查看系统是不是有能存泄漏以及参数设置是否合理有不错的意义

2. jstack

这个是用来查看jvm当前的thread dump的。可以看到当前Jvm里面的线程状况。

这个对于查找blocked线程比较有意义

3. jmap .

这个是用来查看jvm当前的heap dump的。可以看出当前jvm中各种对象的数量,所占空间等等。

尤其值得一提的是这个命令可以到处一份binary heap dump的bin文件,这个文件能够直接用

Eclipse Memory Anayliser来分析,并找出潜在的内存泄漏的地方。

4. 还有一个比较有用的非jvm命令--netstat

通过这个命令可以看到linux系统当前在各个端口的链接状态,比如查看数据库连接数等等

jstat

1. jstat -gc pid

可以显示gc的信息,查看gc的次数,及时间。

其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

2.jstat -gccapacity pid
            可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,

如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,

PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。

其他的可以根据这个类推, OC是old内纯的占用量。

3.jstat -gcutil pid

统计gc信息统计。

4.jstat -gcnew pid

年轻代对象的信息。

5.jstat -gcnewcapacity pid

年轻代对象的信息及其占用量。

6.jstat -gcold pid

old代对象的信息。

7.stat -gcoldcapacity pid

old代对象的信息及其占用量。

8.jstat -gcpermcapacity pid

perm对象的信息及其占用量。

9.jstat -class pid

显示加载class的数量,及所占空间等信息。
     10.jstat -compiler pid

显示VM实时编译的数量等信息。

11.stat -printcompilation pid

当前VM执行的信息。

一些术语的中文解释:

S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
         S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
         S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
         S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
           EC:年轻代中Eden(伊甸园)的容量 (字节)
           EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
           OC:Old代的容量 (字节)
           OU:Old代目前已使用空间 (字节)
           PC:Perm(持久代)的容量 (字节)
           PU:Perm(持久代)目前已使用空间 (字节)
         YGC:从应用程序启动到采样时年轻代中gc次数
       YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
         FGC:从应用程序启动到采样时old代(全gc)gc次数
       FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
         GCT:从应用程序启动到采样时gc用的总时间(s)

NGCMN:年轻代(young)中初始化(最小)的大小 (字节)

NGCMX:年轻代(young)的最大容量 (字节)

NGC:年轻代(young)中当前的容量 (字节)

OGCMN:old代中初始化(最小)的大小 (字节)

OGCMX:old代的最大容量 (字节)

OGC:old代当前新生成的容量 (字节)

PGCMN:perm代中初始化(最小)的大小 (字节)

PGCMX:perm代的最大容量 (字节)

PGC:perm代当前新生成的容量 (字节)

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

O:old代已使用的占当前容量百分比

P:perm代已使用的占当前容量百分比

S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)

S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)

ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)

DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)

TT: 持有次数限制

MTT : 最大持有次数限制

jstack

jstack用于打印出给定的Java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid

如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

需要注意的问题:

l 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, dump信息也有差别。

l 在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dump信息,如果每次 dump都指向同一个问题,我们才确定问题的典型性。

原文:https://blog.csdn.net/u013851082/article/details/53665117

最新文章

  1. 弹出页面遮罩层,以及web端和移动端阻止遮罩层的滑动。
  2. lucence.net+盘古分词
  3. 设计模式总结篇系列:命令模式(Command)
  4. android media server 解析1-media player service 结构部分
  5. Web fonts
  6. java IO和NIO 的区别
  7. Xcode:Foundation框架找不到,或者是自动提示出现问题
  8. MySQL锁监视器
  9. show slave status中的log_file / log_pos
  10. 剧烈变化的移动互联网O2O
  11. 零售POS开发
  12. 【转】Word中使用Endnote很卡解决方案
  13. jQuery 插件开发 笔记
  14. android开发工具类总结(一)
  15. hdu 5996 dingyeye loves stone(博弈)
  16. JAVA泛型使用方法总结
  17. hw1
  18. 力扣算法题—050计算pow(x, n)
  19. python大法好——Python 面向对象
  20. 转:centos查看实时网络带宽占用情况方法

热门文章

  1. nginx开发笔记_ngx_hash源码解析
  2. poj1417 True Liars[并查集+背包]
  3. ACM学习历程—HDU1028 Ignatius and the Princess(组合数学)
  4. DDP入门
  5. 【转】android adb常用指令
  6. jquery中对于批量deferred的处理
  7. Javascript Tip(!!)
  8. JIRA 破解文件研究(Win 7环境)
  9. [poj2955/nyoj15]括号匹配(区间dp)
  10. HDU - 3499 Flight 双向SPFA+枚举中间边