目录
1. jps(JVM 进程状态)
jps 是一个轻量级的工具,用于列出当前机器上运行的所有 Java 进程。它可以显示进程的 PID、主类名、JVM 参数等。
jps
- 这个命令将列出当前运行的 Java 进程及其 PID。如果你想查看更多详细信息,可以使用
-v选项来查看进程的启动参数:
jps -v
2. jstack(线程堆栈信息)
jstack 用于打印指定 Java 进程的线程堆栈信息,通常用于诊断死锁或分析线程的执行情况。
jstack <pid>
<pid>是目标 Java 进程的进程 ID。使用jps命令可以查看当前运行的进程 ID。- 你还可以使用
jstack的-l参数来查看锁的信息,包括死锁信息:
jstack -l <pid>
3. jstat(JVM 性能监控)
jstat 是一个用于监控 JVM 性能的命令行工具。它可以显示关于垃圾回收、堆内存、类加载等方面的统计信息。
常用的 jstat 命令示例:
- 查看堆内存使用情况:
jstat -gc <pid>
- 显示类加载统计信息:
jstat -class <pid>
- 显示垃圾回收统计信息:
jstat -gcutil <pid>
- 查看详细的 GC 日志信息:
jstat -gcnew <pid>
jstat还有许多其他的选项,可以通过man jstat或jstat -h获取帮助信息。
4. jmap(内存映像和堆信息)
jmap 用于生成堆的快照,或查看堆内存的使用情况。它可以输出堆的详细信息,帮助分析内存问题。
- 查看堆内存的概况:
jmap -heap <pid>
- 获取堆内存的详细信息:
jmap -histo <pid>
- 创建堆转储(heap dump),用于后续的内存分析:
jmap -dump:format=b,file=<filename>.hprof <pid>
- 该命令将生成一个
hprof格式的堆转储文件,你可以使用工具如MAT(Memory Analyzer Tool) 来分析这个文件。
5. jconsole(JVM 监控和管理工具)
jconsole 是一个图形化的 JVM 监控工具,提供关于 JVM 的实时监控功能。它可以显示堆内存使用情况、线程活动、类加载、GC 活动等信息。你可以通过以下命令启动 jconsole:
jconsole
- 启动后,
jconsole会列出本地和远程的 Java 进程,你可以选择一个进程来进行实时监控。
6. visualvm(可视化的 Java 性能监控)
visualvm 是一个 Java 虚拟机监控、分析和故障排除的图形化工具,适用于分析性能瓶颈、内存泄漏、线程死锁等问题。你可以用它来查看堆栈跟踪、堆内存、线程状态等信息。
启动 VisualVM:
visualvm
- 在 VisualVM 中,你可以选择一个正在运行的 Java 应用程序,并且查看其各项指标,如堆内存使用情况、CPU 使用率、线程状况、GC 活动等。
7. jcmd(JVM 命令行工具)
jcmd 是一个功能强大的命令行工具,可以用来获取 JVM 的各种状态信息和进行诊断,替代了部分 jstack、jmap 等工具的功能。
- 获取堆栈信息:
jcmd <pid> Thread.print
- 获取 GC 状态:
jcmd <pid> GC.run
- 获取内存相关信息:
jcmd <pid> VM.native_memory summary
- 查看系统属性:
jcmd <pid> VM.system_properties
8. ps 和 top 命令(系统级别的资源监控)
ps命令:查看正在运行的 Java 进程及其资源占用情况。
ps -ef | grep java
top命令:实时查看系统资源的使用情况,包括 CPU、内存、线程等信息。
top -p <pid>
9. jinfo(JVM 配置和系统属性)
jinfo 命令用于查看和修改正在运行的 Java 进程的系统属性、JVM 参数等信息。
- 查看 JVM 参数:
jinfo -flags <pid>
- 查看系统属性:
jinfo -sysprops <pid>
10. gc.log 文件(垃圾回收日志)
如果你在启动 JVM 时启用了 GC 日志记录(使用 -Xloggc 或其他 GC 日志选项),你可以查看生成的垃圾回收日志文件,以分析堆内存使用情况和垃圾回收的情况。
启动 JVM 时启用 GC 日志:
java -Xlog:gc* -jar your-app.jar
这会将 GC 日志输出到标准输出,或者指定一个文件。你可以查看日志中的 GC 活动、堆内存占用、GC 时长等信息。
总结
以下是一些查看 JVM 状态和堆栈信息的常用命令:
jps— 查看 JVM 进程。jstack— 打印线程堆栈信息。jstat— JVM 性能监控。jmap— 查看堆内存信息、生成堆转储。jconsole— 图形化监控工具。visualvm— 可视化 Java 性能监控工具。jcmd— 强大的命令行工具。ps和top— 系统级别的进程监控。jinfo— 查看 JVM 配置和系统属性。
这些命令和工具帮助你在不同层面上诊断和监控 Java 应用程序的运行状况。


1828

被折叠的 条评论
为什么被折叠?



