美文网首页
jvm常用监测命令

jvm常用监测命令

作者: 乌木山 | 来源:发表于2019-11-24 12:21 被阅读0次

关键词

jvm 内存分析 线程分析 jps jstat jinfo jmap jstack

在实际工作中,遇到jvm相关问题时,我们需要一些手段来查看jvm进程的一些状态。下面总结一下常用的几个命令及作用。

jps

jps命令主要那个用来快速查看当前系统启动的jvm进程。其结果如下所示,其中通过 -l可以进一步展示启动类的全路径,-v可以查看jvm启动时的相关启动参数。

7616 Jps
2626 Launcher
2629 DemoApplication
2006 Main
2183 RemoteMavenServer36

jstat

jstat 主要用来监视jvm'的类加载、内存使用、垃圾回收及JIT编译信息的内容。
使用方式为 jstat -<option> pid
常用的选项包括:

option 作用
-class 类加载、卸载数量以及耗时情况
-gc/-gcutil/... 展示jvm堆内存的使用情况信息
-compiler 输出被JIT编译器编译过的方、法耗时
jstat -gc 11724       
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
10240.0 10240.0  0.0    0.0   129024.0 109282.0  98816.0     5636.6   21296.0 20491.3 2944.0 2749.2      3    0.021   1      0.035    0.056

jinfo

jinfo用于查看jvm中的各项配置参数,jps的-v选项可以展示被显式指定的启动参数。而该命令可以查看其他默认的系统参数。
查用的命令格式包括:
jinfo -flags pid
java -XX:+PrintFlagsFinal -version

jinfo -flags 4947
Attaching to process ID 4947, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.102-b14
Non-default VM flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=4 -XX:InitialHeapSize=268435456 -XX:+ManagementServer -XX:MaxHeapSize=4294967296 -XX:MaxNewSize=1431306240 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=89128960 -XX:OldSize=179306496 -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
Command line:  -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=55176 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=55177:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8

jmap

如果说jstat可以对内存使用进行宏观观察,那jmap则是用来对内存里的数据进行细致观察的。
jmap常用的option包括:

option 说明
-dump 我们常说的生成堆内存快照dump文件,格式一般是 -dump:format=b,file=xxx pid。然后借助一些其他工具如jhat、MAT进行分析。
-histo 输出当前内存中各对象的数量、空间占用情况
-heap 用来展示堆内存的垃圾回收期信息、堆内存各分代状态。

jhat

用来对上文提到的dump文件进行数据分析的工具,其他常用的工具有MAT(eclipse memory analyzer tool)。

jstack

jstack命令关注的jvm里线程的状态,通过jack将线程快照dump下来,就能够分析各个线程所处的状态,比如是否阻塞、等待资源。
其中通过-F可以强制输出线程堆栈,而不去优先响应请求。-l可以附加展示锁的相关信息。

除了上述的常用命令,jvm也提供了如jConsolejvisualvm等可视化工具,这些工具也可以查看内存、线程等相关jvm数据。读者可以自己去探索一下。

相关文章

  • jvm常用监测命令

    关键词 jvm 内存分析 线程分析 jps jstat jinfo jmap jstack 在实际工作中,遇到jv...

  • 强大的安全防护盾

    # Shell命令 » 硬件·内核·监测 » iptables iptables 命令是 Linux 上常用的防火...

  • jvm常用:命令 、参数

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

  • 阿尔萨斯-jvm

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

  • JVM命令与调试工具

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

  • JVM问题常用排查命令

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

  • JVM内存分析

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

  • 常用JVM诊断命令

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

  • jvm常用分析命令

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

  • JVM

    常用的 java 命令jmap + Matjstack jvm 的参数类型1.标准参数(-help -sever ...

网友评论

      本文标题:jvm常用监测命令

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