Java问题排查常用命令行工具速查表


Java问题排查常用命令行工具速查表

工具典型用途常用命令示例说明/场景
jps列出本机所有Java进程jps -l获取Java进程PID和主类名,配合其它工具使用
jcmd动态诊断、堆heap dump、线程dump等jcmd help
jcmd VM.flags
jcmd GC.heap_info
jcmd Thread.print
功能最全,替代jmap/jstack/jinfo等
jinfo查看/调整JVM参数jinfo -flags 查看JVM启动参数、运行参数
jstat监控JVM内存、GC等统计jstat -gc 1000 5观察GC频率、各代内存使用情况
jmap生成堆dump、对象直方图、类信息jmap -dump:format=b,file=heap.hprof 堆分析、内存泄漏定位
jstack导出线程栈快照jstack > threads.txt死锁、线程阻塞、CPU高分析
jhat分析堆转储文件(已被MAT/VisualVM替代)jhat heap.hprof简单web界面分析heap dump(不推荐新项目)
javap反编译class文件javap -c -l MyClass分析字节码,定位优化点,或排查热部署问题
lsof查看进程打开的文件和网络连接lsof -p 排查文件句柄泄漏、网络连接泄漏
strace跟踪系统调用(Linux)strace -p 深度排查IO阻塞、native层调用
perf/top性能火焰图、系统级CPU热点perf top -p 分析本地方法、JVM与操作系统之间的性能瓶颈
gcore生成进程core dump(Linux)gcore JVM崩溃、native崩溃分析,配合gdb使用
netstat网络连接、端口监听netstat -anopgrep
vmstat/iostat系统内存、IO负载vmstat 1 5 / iostat -d 1 5JVM卡顿是否由系统资源瓶颈导致
ps进程状态、资源占用ps -p -o pid,pcpu,pmem,etime,cmd结合top,监控JVM资源消耗

常用工具能力简述

1. jcmd(推荐)

  • 现代JVM诊断首选,几乎覆盖jmap、jstack、jinfo所有功能,且不易崩溃。
  • 实用命令:
    jcmd <pid> help
    jcmd <pid> VM.flags                # 查看JVM参数
    jcmd <pid> GC.heap_info            # 内存分布
    jcmd <pid> Thread.print            # 线程栈快照
    jcmd <pid> GC.class_histogram      # 类实例统计
    jcmd <pid> GC.heap_dump /tmp/heap.hprof   # 堆转储
    

2. jinfo

  • JVM参数和值的查询,调优时必备。
  • 常用:
    jinfo -flags <pid>
    

3. lsof

  • 文件句柄、端口泄漏排查利器,适合定位“Too many open files”等问题。

4. strace

  • 跟踪系统调用,常用于排查阻塞、native方法问题(如JNI、文件IO hang)。

5. perf/top

  • 分析JVM与系统层面的CPU热点,结合火焰图可定位本地方法/系统瓶颈。

6. ps/vmstat/iostat

  • 辅助判断JVM外部资源瓶颈,如CPU、内存、磁盘IO。

场景举例

  • 线程死锁/卡顿:jstack/jcmd Thread.print
  • 内存泄漏:jmap/jcmd GC.heap_dump + MAT/VisualVM
  • 文件/网络连接泄漏:lsof/netstat
  • JVM参数核查:jcmd VM.flags / jinfo -flags
  • GC频繁/老年代溢出:jstat -gcutil
  • 系统级卡顿:vmstat/iostat/top/perf

小结

  • jcmd 是现代JVM诊断的“瑞士军刀”,建议优先掌握。
  • 结合 lsof、strace、netstat、ps、vmstat 等系统工具,可实现从JVM到操作系统的全链路排查。
  • 建议根据实际问题场景选择合适工具,组合使用效果更佳。

建议收藏本表,线上问题排查时对照使用,效率倍增!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北漂老男人

防秃基金【靠你的打赏续命】

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值