当前位置: 首页 > news >正文

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到操作系统的全链路排查。
  • 建议根据实际问题场景选择合适工具,组合使用效果更佳。

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

相关文章:

  • Android多媒体——媒体start流程分析(十三)
  • 深入解析 PostgreSQL 外部数据封装器(FDW)的 SELECT 查询执行机制
  • 【vLLM 学习】基础教程
  • 4G物联网模块实现废气处理全流程数据可视化监控配置
  • Angular 知识框架
  • Lord Of The Root: 1.0.1通关
  • 如何在终端/命令行中把PDF的每一页转换成图片(PNG)
  • 《Effective Python》第2章 字符串和切片操作——深入理解 Python 中 __repr__ 与 __str__
  • 机器学习基础课程-6-课程实验
  • android studio导入项目
  • Hadoop集群故障节点隔离操作指南
  • 通用软件项目技术报告 - 导读III
  • WordPress 和 GPL – 您需要了解的一切
  • 卷积神经网络全连接层详解:特征汇总、FCN替代与性能影响分析
  • 代理IP与VPN的区别,如何根据需求选择?
  • 如何恢复被勒索软件加密的服务器文件(解密与备份策略)
  • C及C++的SOAP协议库
  • Linux系统编程——fork函数的使用方法
  • MCU程序加密保护(二)ID 验证法 加密与解密
  • AI+服务重塑智能客服,但价值永远是关键所在
  • 曾犯强奸罪教师出狱后办教培机构?柳州鱼峰区教育局:正核实
  • 宜昌谱写新叙事:长江大保护与高质量发展如何相互成就
  • 当番茄霸总遇上晋江古言,短剧IP小变局
  • 《克莱默夫妇》导演罗伯特·本顿去世,终年92岁
  • 受美关税影响,本田预计新财年净利下降七成,并推迟加拿大建厂计划
  • 专访|茸主:杀回UFC,只为给自己一个交代