`

几个比较实用的JVM进程分析命令

 
阅读更多

jps:显示本机所有jvm进程
jps -q #只显示进程号
jps -l  #显示主类全名或所在jar路径
jps -m #显示传给main类的参数信息
jps -v #显示进程启动时指定的jvm参数

jinfo:查看或设置java虚拟机参数
jinfo -flag MaxPermSize <pid> #显示该jvm进程的-XX:MaxPermSize参数值(无所谓是否在启动脚本中设置了该参数)

jstat:虚拟机统计信息监视,可以监控类装载、内存gc情况、jit编译情况等
jstat -class <pid> #监视类装载情况
jstat -gc|gcdetail|gcutil|gccause <pid> #gc情况与内存使用
jstat -gcnew|gcnewcapacity  <pid> #新生代gc情况
jstat -gcold|gcoldcapacity <pid> #老年代gc情况
jstat -gcpermdetail <pid> #持久带gc情况
jstat -gc <pid> 100ms 4 #每隔100ms检测gc情况,一共检测4次
jstat -gc protocal://<pid>@hostname:port/servername #检测远程主机

jmap:java内存映射工具,可查看堆内存信息
jmap -dump:[live,]format=b,file=<filename> <pid> #将pid对应的jvm进程堆内存dump到filename文件
jmap -histo <pid> #显示堆中对象的统计信息,如类、实例数量等
jmap -permstat <pid> #以classloader为统计口径显示永久代内存状态,only for linux

jhat:虚拟机堆dump文件查看分析工具,执行后会启动一个http服务器,用网页即可看见堆内对象的情况,亦可以使用OQL查询
jhat <pid>

jstack:java线程堆栈查看工具
jstack -l <pid> #加l参数同时会显示锁信息

jconsole:图形化的java进程监控工具
提供查看系统CPU,进程内存、线程、对象等信息

jvisualvm:图形化的java进程AllInOne处理工具
除jconsole功能外,还提供堆dump与分析、动态对象性能分析、离线快照等功能,另外其可以通过plugin插件进行功能扩展

 

分享到:
评论

相关推荐

    Zabbix监控多个JVM进程的方法

    总结以上内容,Zabbix监控多个JVM进程的过程可以分为以下几个步骤: 1. 准备环境,包括安装JDK、配置环境变量、上传并测试jvm.py脚本。 2. 安装和配置Zabbix Agent,确保它能正确收集和传输监控数据。 3. 在Zabbix ...

    jvm常用命令工具

    本篇文章将详细介绍以下几个核心的JVM命令工具及其使用方法: 1. **jps** - 显示系统中所有HotSpot虚拟机进程。 2. **jstat** - 收集HotSpot虚拟机各方面的运行数据。 3. **jstack** - 显示虚拟机的线程栈信息。 4....

    JVM调优工具命令详解.pdf

    上述知识和命令涵盖了JVM调优中不可或缺的几个重要方面,从内存分析到故障排查,再到性能监控。掌握这些工具和方法对于解决生产环境中的性能问题至关重要。熟练运用JVM调优工具可以为开发者提供一套强大的问题诊断和...

    独立进程JVM设置.doc

    在设置JVM大小时,需要注意几个要点: 1. **JVM大小不是越大越好**:更大的JVM意味着Full GC(全局垃圾收集)时间更长,这期间应用会被暂停。因此,过大JVM可能导致性能下降。 2. **选择适合的GC算法和配置**:针对...

    对JVM调优的总结经验.docx

    JVM 调优的步骤可以分为以下几个步骤: 1. 根据需求进行 JVM 规划和预调优:在开始 JVM 调优之前,需要根据应用程序的需求和性能指标来规划和预调优 JVM。 2. 优化运行 JVM 运行环境:包括优化 JVM 的配置、垃圾...

    JVM-Tunning-Tools-Introduction

    1. jstatd:是一个监控服务,它在目标机器上创建一个RMI(远程方法调用)注册表,并使用这个注册表来监听JVM进程的创建和终止。其他工具如jvisualvm可通过它来远程连接并监控JVM进程。 2. jps:用于显示在本地或...

    jvm调试示例代码

    - `jstack`命令用于打印Java进程的线程堆栈信息,结合代码分析线程行为。 7. **异常处理** - 在`share-jvm`代码中,查找并理解如何捕获和处理异常,确保程序健壮性。 - 异常堆栈信息是定位问题的关键,要学会...

    JVM性能监测及调优实战

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

    这几种常见的JVM调优场景你知道吗?

    2. 利用`top -Hp`命令进一步查看该进程中占用CPU的线程。 3. 将线程ID转换为16进制,然后使用`jstack`工具分析线程栈,找到具体消耗CPU的代码位置。例如,如果线程ID为7287,将其转换为16进制(1c77),然后执行`...

    美团JVM问题定位和排错

    针对JVM常见的几个问题类型,我们可以逐一探讨如何进行有效的定位和排错: 1. **CPU负载过高**:首先需要确定是哪些进程导致了CPU负载的升高,可以通过`top`或`ps`等命令查看当前系统的CPU使用情况;然后进一步使用...

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

    `jps`是JDK自带的一个简单实用的工具,用于列出当前正在运行的所有Java应用程序的进程ID以及基本状态信息。其语法格式如下: ```shell jps [options] [hostid] ``` 如果不指定`hostid`,则默认为当前主机。`jps`的...

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

    3. jinfo:用于查看和修改Java进程的配置信息,例如JVM参数。 4. jmap:用于生成堆转储文件,以便进一步分析内存泄漏等问题。 5. jhat:配合jmap生成的堆转储文件,提供一个基于HTTP的内存分析服务器。 6. jstack...

    java jstat 查看哪个进程频繁GC垃圾回收

    `jstat -gc` 输出的信息中,你可以关注以下几个关键指标: 1. **YGCT**:Young Generation Garbage Collection Time,年轻代GC时间。 2. **FGCT**:Full GC Time,完整GC时间。 3. **GCT**:Total Garbage ...

    Address already in use: JVM_Bind(端口冲突)

    "Address already in use: JVM_Bind(端口冲突)" 是一个常见的Java错误,它发生在尝试绑定一个已经被其他进程使用的网络端口时。在Java应用程序中,比如使用Jetty这样的服务器,当我们试图启动一个新的服务器实例时...

    Java调用Linux命令

    这个方法允许Java应用程序创建一个新的进程来执行指定的命令。以下是对这一知识点的详细说明: #### Runtime.exec()方法 `Runtime.exec(String command)`方法用于执行指定的命令。该方法创建一个新的本地进程,并...

    Java性能调优命令

    此命令非常有用,当需要查看某个Java进程的系统属性或JVM参数时,可以使用`jinfo pid`(pid是进程ID)来列出特定Java进程的详细配置。 3. jstack命令用于产生运行中的Java线程的dump信息。它能打印出Java线程的堆栈...

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

    再者,JVM内存模型包括堆、栈、方法区、本地方法栈和程序计数器等几个部分。理解这些区域的作用以及它们之间的关系对于理解内存管理和错误排查很有帮助。 最后,JVM的性能监控和调优是一个持续的过程,涉及到许多...

    JVM调优前戏之JDK命令行工具.docx

    在这篇文章中,我们将详细解读几个常用的JDK命令行工具,包括jhat、jmap、jstack等。 jhat jhat是JVM Heap Analysis Tool的缩写,主要用于分析jmap生成的dump。jhat内置了一个微型的HTTP/HTML服务器,生成dump的...

    JVM学习札记

    JVM的执行基本结构主要包括以下几个关键组成部分: 1. **程序计数器(PC寄存器)**:每个线程都有自己的程序计数器,用于记录当前线程所执行的字节码指令的位置。 2. **方法区**:存储已加载类的元数据信息,包括类型...

Global site tag (gtag.js) - Google Analytics