`
pengpeng
  • 浏览: 84118 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jvm常用诊断命令

阅读更多

jinfo:可以输出并修改运行时的java 进程的opts。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap:打印出某个java进程(使用pid)内存内的,所有'对象'的情况(如:产生那些对象,及其数量)。
jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

详细:在使用这些工具前,先用JPS命令获取当前的每个JVM进程号,然后选择要查看的JVM。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=String 3024可以将3024进程的内存heap输出出来到String文件里。

jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。

jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。使用方法:命令行里打 jconsole,选则进程就可以了。

 

  • jstack ( 查看jvm线程运行状态,是否有死锁现象等等信息) : jstack pid : thread dump
  • jmap -histo:live  pid| less :堆中活动的对象以及大小
  • jstat -gcutil  pid  1000 100  : 1000ms统计一次gc情况统计100次;
  • jmap -heap pid : 查看堆的使用状况信息
  •  

    参考文档:
    jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html
    jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html
    jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html
    jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html

    分享到:
    评论

    相关推荐

      jvm常用命令工具

      ### jvm常用命令工具 #### 一、概述 在程序运行过程中,经常会出现各种各样的问题,例如性能瓶颈、内存泄漏、死锁等。为了快速定位并解决问题,我们需要收集多种类型的运行时信息,包括但不限于系统日志、堆转储...

      JVM问题诊断常用命令

      ### JVM问题诊断常用命令详解 在Java开发与运维过程中,针对JVM(Java虚拟机)进行性能调优、故障排查是非常重要的环节。本文将详细介绍三种常用的JVM问题诊断工具:`jinfo`、`jmap` 和 `jstack` 的功能、用法以及...

      JVM监控管理及故障诊断工具(常用命令)

      本文将介绍三种常用的 JVM 监控管理及故障诊断工具:jps、jstat 和 jstatd。 1. jps - Java Virtual Machine Process Status Tool jps 命令用于列出目标系统上正在运行的虚拟机进程(每个 Java 程序会独占一个 ...

      JVM常用指令手册JVM常用指令手册JVM常用指令手册

      其次,JVM提供了多种用于诊断和分析的工具,如`jps`用于查看Java进程,`jmap`用于查看堆内存快照,`jhat`用于分析堆内存,以及`jstack`用于查看线程堆栈信息。这些工具对于定位性能问题、内存泄漏或死锁非常有用。 ...

      10.JVM常见命令1

      JVM常见命令 JVM(Java Virtual Machine)是 Java 语言的 Runtime 环境,它提供了多种命令来监控和管理 Java 应用程序的执行情况。在本文中,我们将介绍 10 个常见的 JVM 命令,包括 jps、jstat、jinfo、jmap 和 ...

      基于JVM性能监控命令介绍

      基于JVM性能监控命令介绍了六种常用的JVM性能监控命令,包括jps、jstat、jinfo、jmap、jhat和jstack命令。这些命令可以帮助开发者和运维人员实时监控虚拟机的性能,诊断和解决问题,提高系统的稳定性和可靠性。

      性能测试常用命令.doc

      下面将从硬件信息、中间件、监控Linux服务器、监控和诊断JVM、其它命令五个方面总结常用的性能测试命令。 一、硬件信息 在性能测试中,对硬件信息的了解是非常重要的。下面是一些常用的命令: * 查看 Redhat 版本...

      java虚拟机常用命令

      以下是一些常用的JVM命令工具及其知识点。 1. jps命令 jps(JVM Process Status Tool)命令用于列出正在运行的Java虚拟机进程信息。这个命令可以显示Java虚拟机的进程ID、主类名称、jar文件名以及传递给main方法的...

      jdk常用命令

      12. **jcmd**:Java命令工具,用于在JDK 1.7及更高版本中执行诊断操作。 13. **jrunscript**:运行JavaScript或其他支持的脚本语言,利用Java平台的功能。 14. **keytool**:管理密钥和证书,用于创建和管理...

      线上问题调查常用命令

      本篇文章将基于提供的文件信息,深入解析线上问题调查中常用的Linux性能检测工具及JVM性能相关命令,并提供详细的解释与应用场景。 #### Linux性能检测工具 **1. CPU性能检测** ##### 基本概念 - **上下文切换**...

      美团JVM问题定位和排错

      - **Linux系统工具集**:常用的命令包括`dstat`、`sar`、`netstat`、`free`、`ps`、`top`、`df`、`du`等。这些命令可以帮助开发者监控进程状态、CPU和内存状态、磁盘状态(IO、使用率)、网络流量状态以及块设备状态...

      一图掌握Artha-常用命令汇总

      总的来说,Arthas是Java开发者必备的诊断工具,通过学习和掌握其常用命令,可以在遇到问题时迅速定位并解决,提升开发效率和应用的稳定性。通过“一图掌握Artha-常用命令汇总”,结合提供的ArtHas.xmind文件,相信你...

      多线程下常用调试命令1

      为了有效地理解和解决多线程环境中的问题,掌握一些常用的调试命令是必要的。本文将主要介绍在Java多线程环境下,通过JDK自带的一些工具进行调试的关键命令。 首先,`jps`(Java Process Status)是Java开发人员...

      JVM性能监测及调优实战

      Linux 命令行工具之 pidstat 命令可以监测线程的性能,通过 pidstat -help 命令,我们可以查看到有以下几个常用的参数来监测线程的性能:-u、-r、-d、-w、-p、-t 等。 在 Java 中,大部分内存都是在 JVM 的用户内存...

      jvm工具、参数调优&调试技巧

      - **功能**:`jstack` 可以打印出指定JVM的线程堆栈跟踪信息,有助于诊断线程挂起等问题。 - **常用命令**:`jstack pid > stacktrace.txt`。 ##### 7. VisualVM:多合一故障处理工具 - **功能**:VisualVM是一个...

      java诊断与调优常用命令jmap、jstack、jstat使用实战.pdf

      通过添加参数`-l`,可以显示主类的完整包路径,而`-v`参数会展示JVM启动时的参数。在Windows环境下,如果执行jps无结果,可能是由于权限问题,需要确保当前用户对 `%TMP%\hsperfdata_${user}` 目录有读写权限。 2. ...

      JAVA JVM性能调优监控工具详解

      因此,掌握一些常用的JVM性能调优和监控工具对于Java开发者来说至关重要。本文将详细介绍几种常见的JVM性能调优工具,并通过实际案例帮助读者更好地理解和应用这些工具。 #### 一、jps (Java Virtual Machine ...

      Arthas开源的Java诊断工具.rar

      下面我们来介绍 Arthas 的基本原理和一些常用命令。 Arthas 的基本原理是使用 Java Agent 实现的,它会在应用程序启动时向 JVM 中注入一个 Java Agent,该 Agent 可以修改字节码,动态地为应用程序增加一些代码。...

      Java性能调优命令

      以下是一些常用的Java性能调优命令及其用法和相关知识点。 1. jps命令用于列出所有的JVM实例。通过该命令,开发者可以快速查看本机上所有Java应用程序的进程ID。例如,使用`jps`可以列出本机所有的JVM实例。 2. ...

    Global site tag (gtag.js) - Google Analytics