美文网首页
常用JVM诊断命令

常用JVM诊断命令

作者: 慢游世界 | 来源:发表于2019-08-12 10:35 被阅读0次

top

使用top主要查看各进程CPU、内存使用情况。

top命令截图
top -Hp pid 还可以定位到某个具体线程,测试使用发现内存那列都是一样的(都显示的进程占用的内存),而CPU是不一样的,所以top -Hp pid可以查看每个线程的CPU占用情况。
top -Hp pid命令截图
当进程CPU占用比较高时,可以查看具体哪个线程使用CPU比较高,再通过jstack pid |grep tid的十六进制 -A 30查看线程堆栈信息,从而定位导致CPU占用较高的代码。

jmap

jmap可以查看堆内存初始化配置信息以及堆内存的使用情况。


jmap -heap pid命令截图

我们可以使用 jmap -histo[:live] pid 查看堆内存中的对象数目、大小统计直方图,如果带上 live 则只统计活对象。


jmap -histo[:live] pid命令截图
还可以使用jmap -dump:format=b,file=name.dump pid 导出dump文件,用visualVM软件进行分析。
当发生内存溢出或老年代占用率过高,可以使用以上命令分析。

jstat

jstat -option可以监测 Java 应用程序的实时运行情况,包括堆内存信息以及垃圾回收信息,具体选项如下:

  • -class:显示 ClassLoad 的相关信息;
  • -compiler:显示 JIT 编译的相关信息;
  • -gc:显示和 gc 相关的堆信息;
  • -gccapacity:显示各个代的容量以及使用情况;
  • -gcmetacapacity:显示 Metaspace 的大小;
  • -gcnew:显示新生代信息;
  • -gcnewcapacity:显示新生代大小和使用情况;
  • -gcold:显示老年代和永久代的信息;
  • -gcoldcapacity :显示老年代的大小;
  • -gcutil:显示垃圾收集信息;
  • -gccause:显示垃圾回收的相关信息(通 -gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
  • -printcompilation:输出 JIT 编译的方法信息。
    这里详细记录下jstat -gcutil 时间间隔(毫秒)命令,这个命令会持续输出堆内存各个区的使用率和垃圾收集情况。
    jstat -gcutil pid 时间间隔(毫秒)命令截图
  • S0:Survivor S0区的内存使用率。
  • S1:Survivor S1区的内存使用率。
  • E:Eden区的内存使用率。
  • O:老年代的内存使用率。
  • P:永久代的内存使用率。
  • YGC:Minor GC发生的次数。
  • YGCT:Minor GC共消耗的时间(s)。
  • FGC:Full GC发生的次数。
  • FGCT:Full GC共消耗的时间。
  • GCT:Minor GC 和 Full GC共消耗的时间。

jstack

jstack pid经常用来查看线程的堆栈信息,通常结合top -Hp pidpidstat -p pid -t来使用,比如通过top -Hp pid定位到了CPU使用率高的线程,再使用jstack pid可以定位CPU使用率高的代码。

jstack pid命令截图

相关文章

  • 常用JVM诊断命令

    top 使用top主要查看各进程CPU、内存使用情况。 jmap jmap可以查看堆内存初始化配置信息以及堆内存的...

  • jvm常用:命令 、参数

    jvm 常用命令: java -XX:+PrintFlagsFinal -version 查看所有jvm参数 如...

  • 阿尔萨斯-jvm

    Jvm jvm 检测工具 阿尔萨斯(Arthas) 安装 监控命令常用命令 dashboard(仪表盘) Thre...

  • JVM命令与调试工具

    JVM常用命令行命令 jps命令:查看系统中有哪些进程使用jvm虚拟机 扩展参数:jps -l;jps -mlv;...

  • JVM在线诊断分析工具--Arthas

    Arthas是阿里开源的在线jvm诊断分析工具, 采用了命令行交互的方式进行jvm管理分析, 引用官方文档来说, ...

  • JVM问题常用排查命令

    JVM问题常用排查命令 @Date 2017.05.23 JVM调优问题 CPU使用率与Load值偏大 : Thr...

  • 有用的冷知识集结

    1 jvm内置工具 诊断工具,介绍了jvm自带的一些常用工具,在解决问题时可以用到参考:https://blog....

  • 常见的Java故障排除-jcmd

    jcmd实用工具用于向JVM发送诊断命令请求,这些请求主要用于控制 Java Flight Recordings,...

  • JVM内存分析

    JVM常用命令 jps 查看所有的java进程ID jinfo 实时查看和调整JVM配置参数查看jinfo -fl...

  • jvm常用分析命令

    常用jvm命令 jstat 查看java进程的gc状况 注:结果中涉及到jvm堆内存的相关知识,这里不做详细说明,...

网友评论

      本文标题:常用JVM诊断命令

      本文链接:https://www.haomeiwen.com/subject/mviurctx.html