jvm常用排错命令

jvm命令很多,有一篇博客整理的非常全 https://www.cnblogs.com/ityouknow/p/5714703.html。我只列举一些常用的排错用到的。

jps   -l   -v 

查看系统所有java(虚拟机)进程的信息。所在位置、启动执行的JVM参数。

jstat

jstat   -gc   [hostid]   [ms]  [count] 

jstat   -gcutil   [hostid]   [ms]  [count] 

查看jvm进程hostid的垃圾回收统计概述

  • S0C : survivor0区的总容量
  • S1C : survivor1区的总容量
  • S0U : survivor0区已使用的容量
  • S1C : survivor1区已使用的容量
  • EC : Eden区的总容量
  • EU : Eden区已使用的容量
  • OC : Old区的总容量
  • OU : Old区已使用的容量
  • PC 当前perm的容量 (KB)
  • PU perm的使用 (KB)
  • YGC : 新生代垃圾回收次数
  • YGCT : 新生代垃圾回收时间
  • FGC : 老年代垃圾回收次数
  • FGCT : 老年代垃圾回收时间
  • GCT : 垃圾回收总消耗时间

 

jmap

jmap -dump:live,format=b,file=/test/test/test.hprof pid

输出dump文件到/test/test/test

jmap -histo:live pid| more

打印前10行,根据占用空间大小排序。

jmap -histo:live pid| grep redis

打印出redis实例的一些信息 

jstack

jstack [option] pid

  • -F : 当正常输出请求不被响应时,强制输出线程堆栈
  • -l : 除堆栈外,显示关于锁的附加信息
  • -m : 如果调用到本地方法的话,可以显示C/C++的堆栈

分析jstack输出信息:http://www.hollischuang.com/archives/110

jinfo

jinfo [option] pid

  • -flag : 输出指定args参数的值
  • -flags : 不需要args参数,输出所有JVM参数的值
  • -sysprops : 输出系统属性,等同于System.getProperties()
原文地址:https://www.cnblogs.com/kbian/p/11992278.html