
回复
欢迎关注专栏:性能测试和优化
jstack
命令可以生成 JVM 当前时刻的线程快照,包括线程的调用栈、状态等,常用于分析线程状态、排查死锁、线程阻塞、CPU 占用高等问题。
基本命令如下:
输出如下:
jstat
命令允许以固定的监控频次输出 JVM 的资源使用情况,常用于分析垃圾回收情况、排查内存泄漏等问题。
基本命令如下:
输出如下:
jmap
命令可以生成堆转储快照,常用于分析JVM的垃圾收集器行为、排查堆内存溢出等问题。
生成堆转储文件的命令:
分析堆转储:
heap_dump.hprof
。Histogram
中对象数量异常的类。JConsole
是一个基于JMX的GUI工具,用于连接正在运行的JVM,提供强大的可视化界面,允许实时查看堆内存、线程、类加载、MBean等。
查看堆内存使用情况
查看线程情况
查看MBean
VisualVM
是一个集成多个JDK命令行工具的可视化工具,可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。
查看堆内存使用情况
查看线程情况
工具 | 核心功能 | 适用场景 | 操作系统 |
---|---|---|---|
jstack |
线程快照、死锁检测 | 线程阻塞、死锁排查 | Windows/Linux |
jstat |
GC统计、内存分区监控 | GC调优、内存泄漏初筛 | Windows/Linux |
jmap |
堆转储生成 | OOM问题分析 | Windows/Linux |
JConsole |
图形化综合监控 | 实时运行时状态监控 | Windows/Linux |
VisualVM |
图形化综合监控 | 实时运行时状态监控 | Windows/Linux |