jvm工具介绍和性能调优

jvm工具

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/

  • Jps
  • Jstat
  • Jinfo
  • Jmap
  • Jhat
  • Jstack
  • JConsole

Jps (Java process status Java)进程状态 使用频率最高的

    • 本地虚拟机唯一id lvmid local virtual machine id
    • jps -m 运行时传入主类的参数
    • jps -v 虚拟机参数
    • jps -l 运行的主类全名或者jar包名称

Jstat

查看类装载,内存,垃圾收集,jit编译的信息

详细信息可以参见:

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

jstat -gcutil pid:查看某个Java进程的gc情况

S0:年轻代中一个survivor的容量(字节)

S1:年轻代中二个survivor的容量(字节)

E:年轻代中Eden的容量(字节)

O:old的的容量

M:matespace(元空间)

CCS:压缩类的空间

YGC:从应用程序启动到采样时年轻代中gc的次数

YGCT:从应用程序启动到采样时年轻代中gc的次数所用的时间(s)

FGC:从应用程序启动到采样时老年代(full gc)中gc的次数

FGCT:从应用程序启动到采样时老年代(full gc)中gc的次数所用的时间(s)

GCT:从应用程序启动到采样时gc用的总时间

Jinfo

查看java 虚拟机参数

jinfo -flag UseSerialGC pid 查看虚拟机参数的状态

查看当前jvm所用的是否是serial的gc.

Jmap

生成堆存储快照的工具

jmap -dump:format=b,file=d:\a.bin 1016

马上导出当前的Java堆存储快照信息

当设置了虚拟机的参数:-XX:+HeapDumpOnOutOfMemoryError

JVM会在遇到OutOfMemoryError时拍摄一个“堆转储快照”,并将其保存在一个文件中。

而jmap的jmap -dump的转堆存储快照的功能和上面的参数设置的实现的功能是一致的。

jmap -histo 1016 | more 查看堆中的对象信息

Jhat(jvm heap analysis tool)

java堆的分析工具(不常使用)

Jstack

生成每一个线程快照(可以根据快照分析线程是否出现了问题)

在代码中可以使用Thread.getAllStackTraces(),这个方法获取项目中所有线程的相关信息,返回的是一个map集合。

JConsole

图形化工具

 

VisualVM 最强大的监控工具

外部工具

https://visualvm.github/pluginscenters.html

你可能感兴趣的:(Java,jvm)