美文网首页
Java排查问题命令

Java排查问题命令

作者: Minato666 | 来源:发表于2019-07-19 06:43 被阅读0次
    jps

    jps 命令和linux中的ps命令比较类似,不过它只会列出所有的Java进程,通过jps命令可以方便的查看java进程的启动类、传入参数和java虚拟机参数等信息。
    之前我们可能会通过ps -ef | grep java 查看java进程:


    ps

    现在我们可以通过Jps来查看java进程,如果想要查看虚拟机参数,可以使用jps -v


    jps
    jps -v
    jstack

    jstack 用户打印指定java进程的线程堆栈信息,之前在排查CPU占用率过高的文章中我们使用过。
    详细可参考:https://www.jianshu.com/p/5eb2aa94053e

    jinfo

    jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息


    jinfo

    其他参数可以参考 --help:


    jinfo --help
    jmap

    jmap 有两个主要用途:

    • 查看堆的情况
      使用jmap -heap pid,可以打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息


      jmap -heap
    • dump
      使用jmap -dump:format=b,file=heapdump.phrof pid命令可以生成堆转储快照dump文件。这个在我们排查内存溢出导致频繁Full GC的情况经常用到。
      获取到dump文件之后我们可以下载到本地使用MemoryAnalyzerEclipse工具对文件进行分析,从而找到问题所在。
    jstat

    jstat是JDK自带的一个轻量级工具,主要对java应用程序的资源和性能进行实时的命令行的监控,包括对Heap Size和来及回收状况的监控。

    jstat --help

    我们可以通过jstat -gc pid interval来监控java应用的gc情况:


    jstat -gc

    如果其中的FGC(Full GC 次数)过高,并且在短时间内进行了很多次,就说明程序内存可能溢出。
    通过jstat -gccause可以显示最后一次或当前正在发生的垃圾回收的诱因:


    jstat -gccause

    *LGCC:最后一次GC原因
    *GCC:当前GC原因(No GC 为当前没有执行GC)

    相关文章

      网友评论

          本文标题:Java排查问题命令

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