查询jvm中的信息

运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现问题的时候在终端输入一些命令来解决。所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究这些命令的使用也让我们更能了解jvm构成和特性。

命令分类

  • jps
  • jstat
  • jmap
  • jhat
  • jstack
  • jinfo
jps

jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。

命令格式
jps [options ] [ hostid ]

options 参数

  • -l:输出主类全名或jar的路径
  • -q:仅输出VM标识符
  • -m:输出jvm启动时,传递给main()的参数
  • -v:输出JVM启动时显示指定的jvm参数
示例

C:\Users\Administrator>jps -l
11204
3876 sun.tools.jps.Jps
6324 org.jetbrains.idea.maven.server.RemoteMavenServer
14680 org.jetbrains.jps.cmdline.Launcher
6488 com.tianshen.mini.apps.stepsns.StepSnsApplication
8988 org.jetbrains.kotlin.daemon.KotlinCompileDaemonC:\Users\Administrator>jps -q
14240
11204
6324
14680
6488
8988C:\Users\Administrator>jps -m
11204
6324 RemoteMavenServer
14680 Launcher D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/maven-builder-support-3.3.9.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/netty-transport-4.1.32.Final.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/aether-connector-basic-1.1.0.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/aether-dependency-resolver.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/jps-model.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/maven-artifact-3.3.9.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/netty-common-4.1.32.Final.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/idea_rt.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/annotations.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/plexus-utils-3.0.22.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/maven-model-3.3.9.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/netty-codec-4.1.32.Final.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/aether-transport-http-1.1.0.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/li
6488 StepSnsApplication
15932 Jps -m
8988 KotlinCompileDaemon --daemon-runFilesPath C:\Users\Administrator\AppData\Local\kotlin\daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath D:\workpath\JetBrains\IntelliJ IDEA 2019.1\plugins\Kotlin\kotlinc\lib\kotlin-compiler.jar;D:\workpath\java\jdk1.8.0_201\lib\tools.jarC:\Users\Administrator>jps -v
16304 Jps -Denv.class.path=.;D:\workpath\java\jdk1.8.0_201\lib\dt.jar;D:\workpath\java\jdk1.8.0_201\lib\tools.jar; -Dapplication.home=D:\workpath\java\jdk1.8.0_201 -Xms8m
11204  -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -javaagent:D:\workpath\JetBrains\IntelliJ IDEA 2019.1\bin\JetbrainsIdesCrack-4.2.jar -Djb.vmOptionsFile=D:\workpath\JetBrains\IntelliJ IDEA 2019.1\bin\idea64.exe.vmoptions -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2019.1 -XX:ErrorFile=C:\Users\Administrator\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\Administrator\java_error_in_idea.hprof
6324 RemoteMavenServer -Djava.awt.headless=true -Didea.version==2019.1 -Xmx768m -Didea.maven.embedder.version=3.3.9 -Dfile.encoding=GBK
14680 Launcher -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=D:/workcode/step-trade -Dpreload.config.path=C:/Users/Administrator/.IntelliJIdea2019.1/config/options -Dexternal.project.config=C:\Users\Administrator\.IntelliJIdea2019.1\system\external_build_system\step-trade.a2d39cdb -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSeedUniquifier=-7273493625106742150 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2019.1 -Didea.home.path=D:\workpath\JetBrains\IntelliJ IDEA 2019.1 -Didea.config.path=C:\Users\Administrator\.IntelliJIdea2019.1\config -Didea.plugins.path=C:\Users\Administrator\.IntelliJIdea2019.1\config\plugins -Djps.log.dir=C:/Users/Administrator/.IntelliJIdea2019.1/system/log/build-log -Djps.fallback.jdk.home=D:/workpath/JetBrains/IntelliJ IDEA 2019.1/jre64 -Djps.fallback.jdk.version=1.8.0_202-release -Dio.netty.noUnsafe=true -Djava.io.tmp
6488 StepSnsApplication -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:53869,suspend=y,server=n -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\Administrator\.IntelliJIdea2019.1\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8
8988 KotlinCompileDaemon -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx700m -Dkotlin.incremental.compilation=true -Dkotlin.incremental.compilation.js=trueC:\Users\Administrator>jps -l -m
11204
6324 org.jetbrains.idea.maven.server.RemoteMavenServer
14680 org.jetbrains.jps.cmdline.Launcher D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/maven-builder-support-3.3.9.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/netty-transport-4.1.32.Final.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/aether-connector-basic-1.1.0.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/aether-dependency-resolver.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/jps-model.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/maven-artifact-3.3.9.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/netty-common-4.1.32.Final.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/idea_rt.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/annotations.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/plexus-utils-3.0.22.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/maven-model-3.3.9.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/netty-codec-4.1.32.Final.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/lib/aether-transport-http-1.1.0.jar;D:/workpath/JetBrains/IntelliJ IDEA 2019.1/li
6488 com.tianshen.mini.apps.stepsns.StepSnsApplication
3660 sun.tools.jps.Jps -l -m
8988 org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath C:\Users\Administrator\AppData\Local\kotlin\daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath D:\workpath\JetBrains\IntelliJ IDEA 2019.1\plugins\Kotlin\kotlinc\lib\kotlin-compiler.jar;D:\workpath\java\jdk1.8.0_201\lib\tools.jarC:\Users\Administrator>
jstat

jstat(JVM statistics Monitoring)是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

命令格式
jstat [option] LVMID [interval] [count]
参数
  • option:操作参数
  • LVMID: 上面显示的lvmId
  • interval:连续输出的时间间隔
  • count: 连续输出的次数

option参数的总览

option 示意
class class loader的行为统计
compiler HotSpt JIT编译器行为统计
gc 垃圾回收堆的行为统计
gccapacity 各个垃圾回收代容量(young,old,perm)和他们相应的空间统计
gcutil 垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因
gcnew 新生代行为统计
gcnewcapacity 新生代与其相应的内存空间的统计
gcold 年老代和永生代行为统计
gcoldcapacity 年老代行为统计
gcpermcapacity 永生代行为统计
printcompilation HotSpot编译方法统计
示例

-class

监视类装载、卸载数量、总空间以及耗费的时间

注意:19492就是上面的6488 的LVMId
C:\Users\Administrator>jstat -class 19492
Loaded  Bytes  Unloaded  Bytes     Time13563 24983.9       36    56.2      10.02
  • Loaded:加载class的数量
  • Bytes:class总的大小 kb
  • Unloaded:未加载class的数量
  • Bytes: 未加载class的字节大小
  • Time:加载的时间

-compiler

输出JIT编译过的方法数量耗时等

C:\Users\Administrator>jstat -compiler 19492
Compiled Failed Invalid   Time   FailedType FailedMethod9825      9       0     2.60          1 shaded/org/apache/http/client/utils/URLEncodedUtils parse
  • Compiled:编辑的数量
  • Failed:编译失败的数量
  • Invalid:无效数量
  • Time:编译的耗时
  • FailedType:失败类型
  • FailedMethod:失败方法的全限定名

-gc

垃圾回收堆的行为统计,常用命令

C:\Users\Administrator>jstat -gc 19492S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
25600.0 25600.0 672.0   0.0   637440.0 361147.5  131584.0   91293.3   72700.0 69810.0 9472.0 8851.6     18    0.242   3      0.441    0.683
  • S0C: survivor0区的总容量

  • S1C:survivor1区的总容量

  • S0U:survivor0区已使用的容量

  • S1U:survivor1区已使用的容量

  • EC: Eden区的总容量

  • EU:Eden区已使用的容量

  • OC:Old区的总容量

  • OU:Old区已使用的容量

  • MC:

  • MU:

  • CCSC:

  • CCSU :

  • YGC :新生代垃圾回收次数

  • YGCT: 新生代垃圾回收时间

  • FGC:老年代垃圾回收次数

  • FGCT:老年代垃圾回收时间

  • GCT:垃圾回收总消耗时间

    $ jstat -gc 1262 2000 20
    这个命令意思就是每隔2000ms输出1262的gc情况,一共输出20次
    

-gccapacity

同-gc,不过还会输出Java堆各区域使用到的最大、最小空间

C:\Users\Administrator>jstat -gccapacity 19492NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC43520.0 688640.0 688640.0 25600.0 25600.0 637440.0    87552.0  1377792.0   131584.0   131584.0      0.0 1112064.0  72700.0      0.0 1048576.0   9472.0     18     3

C即Capacity 总容量,U即Used 已使用的容量

  • NGCMN:新生代占用的最小空间
  • NGCMX :新生代占用的最大空间
  • OGCMN :老年代占用的最小空间
  • OGCMX:老年代占用的最大空间
  • OGC:当前年老代的容量
  • OC:当前年老代的空间
  • PGCMN :parm占用的最小空间
  • PGCMX :perm占用的最大空间

-gcutil

同-gc,不过输出的是已使用空间占总空间的百分比

C:\Users\Administrator>jstat -gcutil 19492S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT2.62   0.00  59.88  69.38  96.02  93.45     18    0.242     3    0.441    0.683

-gccause

垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因

C:\Users\Administrator>jstat -gccause 19492S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC2.62   0.00  60.44  69.38  96.02  93.45     18    0.242     3    0.441    0.683 Allocation Failure   No GC
  • LGCC:最近垃圾回收的原因
  • GCC:当前垃圾回收的原因

-gcnew

统计新生代的行为

C:\Users\Administrator>jstat -gcnew 19492S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
25600.0 25600.0  672.0    0.0  3  15 25600.0 637440.0 387013.9     18    0.242
  • TT:Tenuring threshold(提升阈值)
  • MTT:最大的tenuring threshold
  • DSS:survivor区域大小 (KB)

-gcnewcapacity

新生代与其相应的内存空间的统计

C:\Users\Administrator>jstat -gcnewcapacity 19492NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC43520.0   688640.0   640000.0 229376.0   1024.0 229376.0  25088.0   687616.0   580608.0    20     3

-gcold

统计旧生代的行为

-gcoldcapacity

统计旧生代的大小和空间

-gcpermcapacity

永生代行为统计

转载于:https://juejin.im/post/5ceba7a06fb9a07ec27b8224

06-jvm-查询命令-01相关推荐

  1. 深入理解linux文件系统( 理解inode与block,理解硬链接软链接,掌握恢复误删文件及其分析方法,掌握用户日志及其查询命令 )

    文章目录 深入理解linux文件系统 前言 inode与block详解 inode和bolck概述 1:数据(block)块: 2:元信息 : inode(索引节点) inodu的内容 Linux系统 ...

  2. mysql怎么查找列命令_MySQL查询命令-DQL

    MySQL查询命令-DQL EMP //员工表 员工编号 员工名 岗位 领导 入职日期 工资 奖金 部门编号 +-------+--------+-----------+------+-------- ...

  3. 【手机】手机代码查询命令大集合

    相信很多人都知道在手机拨号界面输入"*#06#"就可以查询IMEI国际通信识别码,这招在检查水货手机是否三码合一时百试百灵.那么除此之外,我们还能通过类似的代码查询到更多的手机信息 ...

  4. Ubuntu 16.04 显卡型号查询命令

    Ubuntu 16.04 显卡型号查询命令 1. lspci strong@foreverstrong:~$ lspci 00:00.0 Host bridge: Intel Corporation ...

  5. JVM常见命令行及图形工具

    目录 JDK 命令行工具 jps:查看所有 Java 进程 jinfo:实时地查看和调整虚拟机各项参数 jstat:监视虚拟机各种运行状态信息 jmap:生成堆转储快照 jhat:分析 heapdum ...

  6. ES 常用查询命令汇总

    ES 常用查询命令汇总 ES 常用查询命令汇总 一._cat操作 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行 curl -XGET localhost:920 ...

  7. mysql查询01课程比02课程_小菜菜mysql练习解读分析2——查询存在 01 课程但可能不存在 02 课程的情况(不存在时显示为 null )...

    "查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )" --翻译为:课程表里面,存在01的信息,未必满 ...

  8. 手机WiFi万能钥匙查看破解的password和手机查询命令收集

    手机须要网络利用WiFi万能钥匙破解了WIFI的password.手机就能够上网了,但假设想在电脑上使用手机破解的Wifi热点上网就须要password,此时须要知道手机破解的password,WiF ...

  9. 手机WiFi万能钥匙查看破解的密码和手机查询命令收集

    手机需要网络利用WiFi万能钥匙破解了WIFI的密码,手机就可以上网了,但如果想在电脑上使用手机破解的Wifi热点上网就需要密码,此时需要知道手机破解的密码,WiFi万能钥匙破解后的保存路径是/dat ...

  10. 四、MySql七个查询命令中哪些命令执行效率过慢

    七个查询命令中哪些命令执行效率过慢: 1.group by:(最慢)   [原因]:group by 在执行是首先要将临时表中的数据进行排序,然后再进行分组 2.order by: [原因]:需要对s ...

最新文章

  1. 初级c 语言题库,c 语言题库.doc
  2. 《分布式系统:概念与设计》一3.2 网络类型
  3. java 不同包子类 覆盖_Java中不同方法的覆盖方法
  4. tcpdump命令---Linux学习笔记
  5. python花瓣飘零_Python爬虫练习之花瓣网
  6. 2018年,牛客网小白月赛5
  7. 公办低分二本_这六所公办二本高校的计算机类相关专业值得低分段考生选择
  8. C++学习——构造函数,析构函数与虚函数关系
  9. java 异常继承体系_1、异常概述和继承体系 2、原因及处理方式 3、运行时异常 4、重写异常处理 5、Throwable类常见方法 6、自定义异常...
  10. DOS批处理中%cd%和%~dp0的区别
  11. failed to introspect Class[org.springframework.cloud.context.properties.ConfigurationPropertiesBea]
  12. 计算机专业祝福新年快乐,用计算机语言祝福大家新年快乐!
  13. python鼠标选中文本内容_【求助】使用Python脚本如何获取Windows中选中的文本
  14. nginx平滑重启与平滑升级的方法
  15. 【OpenGL】高级片段着色器——高斯模糊和索贝尔边缘检测
  16. 阿里云迁移工具推荐最佳实践:物理服务器迁移到阿里云
  17. scrapy--dytt(电影天堂)
  18. kubectl源码分析之rollout status
  19. Java opencv tld_TLD-(windows) tld c++版可运行版本,亲测. tld OpenCV 252万源代码下载- www.pudn.com...
  20. com lofter android,LOFTER

热门文章

  1. Unity GUI(uGUI)使用心得与性能总结
  2. Laravel 集成 JPush 极光推送指北
  3. Expression Blend 的点滴(4)--创建类似iPhone屏幕锁控件(上)
  4. ECMAScript 引用类型
  5. 《现代教育技术》Win8版发布 项目总结
  6. 图像处理之添加高斯与泊松噪声
  7. Linux扫盲篇:CentOS、Ubuntu、Gento
  8. 病毒导致win2003服务器共享丢失业务中断
  9. 深入理解JavaScript的变量作用域
  10. DPM全方位保护SQL Server,DPM2007系列之五