并发问题排查工具:从JDK工具到Arthas全解析

一、JDK自带工具 1.1 jps:查看Java进程 # 列出所有Java进程 jps -l # 输出示例: # 12345 com.example.MyApplication # 67890 org.apache.catalina.startup.Bootstrap # 参数说明: # -l:显示完整类名 # -v:显示JVM参数 # -m:显示main方法参数 1.2 jstack:线程堆栈分析 # 1. 导出线程堆栈 jstack <pid> > threads.txt # 2. 检测死锁 jstack <pid> | grep -A 20 "Found one Java-level deadlock" # 3. 查看线程数 jstack <pid> | grep "java.lang.Thread.State" | wc -l # 4. 查看BLOCKED线程 jstack <pid> | grep "java.lang.Thread.State: BLOCKED" -A 5 实战案例: # 场景1:CPU 100%排查 # 1. 找到Java进程 jps -l # 2. 找到CPU占用高的线程 top -Hp <pid> # Linux # 输出:线程ID 12345占用CPU 90% # 3. 转换线程ID为16进制 printf "%x\n" 12345 # 输出:0x3039 # 4. 查找对应线程堆栈 jstack <pid> | grep -A 50 "0x3039" # 场景2:死锁排查 jstack <pid> | grep -A 50 "Found one Java-level deadlock" 1.3 jconsole:可视化监控 # 启动jconsole jconsole # 或连接远程JVM jconsole <hostname>:<port> 核心功能: ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...