美文网首页
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