JVM调优与监控命令概览
- 1. jps - JVM Process Status Tool
- 2. jstat - JVM Statistics Monitoring Tool
- 3. jmap - JVM Memory Map Tool
- 4. jhat - JVM Heap Analysis Tool
- 5. jstack - Stack Trace for Java Threads
- 6. jinfo - JVM Configuration Information
💖The Begin💖点点关注,收藏不迷路💖 |
JVM(Java虚拟机)的性能调优和故障处理是至关重要的。Sun JDK提供了一系列强大的命令行工具,帮助开发者和运维人员监控JVM状态、诊断问题并进行性能调优。以下是对这些实用工具的简要介绍:
1. jps - JVM Process Status Tool
jps
(Java Virtual Machine Process Status Tool)是一个非常实用的工具,用于列出当前系统中所有的HotSpot虚拟机进程及其ID。
jps -l
使用-l参数可以显示主类的全限定名,便于识别不同的Java应用。
2. jstat - JVM Statistics Monitoring Tool
jstat(JVM Statistics Monitoring Tool)用于监视Java虚拟机各种运行时状态信息,如类加载、内存使用、垃圾收集以及JIT编译等。它是进行JVM性能调优的得力助手。
jstat -gc <pid> 1000
每隔1000毫秒(1秒)输出一次进程ID为的Java虚拟机的垃圾收集情况。
3. jmap - JVM Memory Map Tool
jmap(Java Memory Map)命令用于生成Java堆的dump文件,这些文件对于后续的内存泄漏分析至关重要。
jmap -dump:live,format=b,file=heapdump.hprof <pid>
上述命令生成一个包含存活对象的堆转储文件heapdump.hprof,这对于使用MAT(Memory Analyzer Tool)等工具进行后续分析非常有用。
4. jhat - JVM Heap Analysis Tool
jhat(Java Heap Analysis Tool)用于分析jmap生成的堆转储文件。它内置了一个简单的HTTP/HTML服务器,可以在浏览器中查看分析结果。
jhat heapdump.hprof
启动后,jhat会在指定端口(默认为7000)上启动服务器,用户可以通过浏览器访问http://localhost:7000来查看分析结果。
5. jstack - Stack Trace for Java Threads
jstack命令用于生成Java虚拟机当前时刻的线程快照,即当前JVM内每一条线程的堆栈跟踪信息。有助于于分析线程死锁、长时间停顿等问题。
jstack <pid>
直接指定Java进程ID即可生成该进程的线程快照。
6. jinfo - JVM Configuration Information
jinfo命令用于查询或打印指定Java进程的系统属性值和JVM命令行标志。它还可以用于在运行时动态地调整某些JVM参数(但仅限于-XX:+UnlockDiagnosticVMOptions已开启的情况)。
jinfo -flags <pid>
打印出指定Java进程的JVM启动参数。
💖The End💖点点关注,收藏不迷路💖 |