`
shifulong
  • 浏览: 59189 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jvm调试命令

    博客分类:
  • java
阅读更多

jps

jps -mlv 列出当前jvm进程

jinfo

jinfo 5743 (jps的进程号)  动态的设置 | 添加 | 删除flag参数

截图的信息不完全,上面还有好多系统的参数、classpath 、balabala

jmap

jmap

jmap 打印java进程内存中对象的情况
-heap 打印堆的信息,各个内存区的用量
-histo[:live]  打印每个class的实例数目,内存占用,类全名信息,live表明正在使用
-permstat to print permanent generation statistics
-finalizerinfo  等待回收对象的信息
-dump:<dump-options> to dump java heap in hprof binary format

 

jmap -heap

 

jmap -histo

 

jmap -permstat $jid

 

jmap  -finalizerinfo $jid

jstack

jstack

线程的运行情况、线程的状态

load过高的排查

1>jps -mlv 列出所有jvm进程,选择要查的那个,记下pid

2>top -H -p pid 查出哪个线程占用cpu过高,取该线程的threadid

3>threadid转成16进制tid

4>jstack tid | grep -A 100 取该线程栈信息的后100行,然后分析信息

jstat

jstat

类的加载情况、各个分带的容量使用情况、gc次数、gc时间

-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcpermcapacity
-gcutil
-printcompilation

S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC:Old代的容量 (字节)
OU:Old代目前已使用空间 (字节)
PC:Perm(持久代)的容量 (字节)
PU:Perm(持久代)目前已使用空间 (字节)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
NGCMN:年轻代(young)中初始化(最小)的大小 (字节)
NGCMX:年轻代(young)的最大容量 (字节)
NGC:年轻代(young)中当前的容量 (字节)
OGCMN:old代中初始化(最小)的大小 (字节)
OGCMX:old代的最大容量 (字节)
OGC:old代当前新生成的容量 (字节)
PGCMN:perm代中初始化(最小)的大小 (字节)
PGCMX:perm代的最大容量 (字节)
PGC:perm代当前新生成的容量 (字节)
S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
P:perm代已使用的占当前容量百分比
S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)
S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)
ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)
DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)
TT: 持有次数限制
MTT : 最大持有次数限制

jstat -gcutil $jid

 

 

 

分享到:
评论

相关推荐

    jvm调试示例代码

    本示例代码集合旨在提供一个实践平台,帮助开发者掌握JVM调试技巧。我们将探讨以下几个关键知识点: 1. **JVM内存模型** - Java内存分为堆内存、栈内存、方法区、程序计数器和本地方法栈。理解它们的作用是调试的...

    jvm常用命令工具

    这些工具能够帮助我们深入了解JVM内部的工作原理,并对应用程序进行更深层次的调试。 #### 二、工具详解 ##### 1. jps - JVM Process Status Tool **用途**:列出当前系统中正在运行的所有HotSpot虚拟机进程,并...

    jvm工具、参数调优&调试技巧(补充+修正版)

    《JVM工具、参数调优&调试技巧》 在Java开发中,理解并掌握JVM(Java虚拟机)的工作原理及优化技术是至关重要的。本文将深入探讨JVM的工具、参数调优以及调试技巧,旨在帮助开发者提升应用性能,减少系统故障。 一...

    JAVA命令大全-JVM设置.rar

    这份“JAVA命令大全-JVM设置.rar”压缩包文件包含了关于Java命令行选项以及JVM配置的相关知识。 首先,`JAVA命令大全.doc`可能包含以下内容: 1. **Java启动命令**:`java`和`javac`是最基础的命令,分别用于执行...

    GDB快速参考

    - **help java**: 列出Java和JVM调试命令。 - **javalist**: 列出Java子命令。 #### Shell命令 - **cd dir**: 改变工作目录到`dir`。 - **pwd**: 显示当前工作目录。 - **make …**: 调用`make`命令。 - **shell ...

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

    ### JVM工具、参数调优与调试技巧 #### 一、JVM工具 ##### 1. jps:虚拟机进程状况工具 - **简介**:`jps` 是一个用于显示当前运行的所有Java虚拟机进程(JVMs)的简单工具。它会列出每个JVM的PID(进程ID)以及...

    JVM问题诊断常用命令

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

    JVM中文指令手册.pdf

    JVM(Java Virtual Machine,Java虚拟机)是运行所有Java程序的假想计算机,是Java程序的运行环境,负责执行指令、管理数据、内存、寄存器等...在进行JVM层面的调试或者性能优化时,对这些指令的熟练应用是不可或缺的。

    jvm tomcat eclipse 远程 断点 debug 调试 jpda

    【JVM远程断点调试】 Java虚拟机(JVM)的远程断点调试是一种强大的工具,允许开发者在不中断正常生产环境的情况下,对部署在远程服务器上的应用进行调试。这通常涉及使用Java Debug Wire Protocol (JDWP) 来实现...

    多线程下常用调试命令1

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

    Java JVM Instruction Set

    其中`-g`选项用于保存符号表供调试器使用。 这一过程将生成可执行的Java字节码文件,其扩展名为`.class`。例如,上面的命令会生成`X.class`文件。这里,我们实际上是在编译源代码为一种中间语言——字节码...

    JVM Diagnostics Guide 1.4.2

    《JVM诊断指南1.4.2》是Java开发者的重要参考资料,主要针对JVM(Java虚拟机)在运行过程中可能出现的问题进行调试和分析。这份指南深入解析了如何诊断和解决与JVM性能、内存管理、线程状态等相关问题,帮助开发者...

    jvm crash的崩溃日志详细分析及注意点

    另一个重要的参数是`-XX:OnError`,它允许我们在JVM崩溃时执行自定义的命令,比如`pmap %p`用于显示进程的内存映射,或者`gcore %p; dbx - %p`用于生成核心转储并启动调试器。在Linux中,这些命令会在子进程中执行,...

    cloud:JVM的命令框架和调度程序

    编写命令时,您确切知道将要使用的数据类型,并且无需花费大量时间调试命令上下文,而会大声哭泣。 使用该框架的经验就像漂浮在天堂般的蓬松云彩上。 它的功能集是从现有的命令框架派生而来的,但限制较少,...

    jvm内存监控工具使用

    这在调试过程中非常有用,特别是当你需要调整 JVM 的运行时配置而无需重启应用时。例如,可以使用 jinfo 来动态更改 JVM 的 GC 日志输出或调整堆内存大小。 #### jstack:线程堆栈跟踪 jstack 用于获取 Java 进程...

    NC eclipse 远程调试

    其中,transport=dt_socket 表示使用 socket 通信协议,server=y 表示该 JVM 用于调试,suspend=n 表示 JVM 立即执行,不要等待调试者连接,address=10.12.24.7:8770 表示监听的 IP 和端口号。 在 nchome/bin 目录下...

    jvm内存参数调优

    -agentlib和-agentpath允许我们利用外部库来监控和调试JVM;-classpath和-cp则帮助我们指定类路径;-Dproperty=value用于设置全局变量;最后,-enableassertions和-disableassertions则为我们提供了灵活的断言控制...

Global site tag (gtag.js) - Google Analytics