使用jps jstack排查系统问题

第一步用jps查进程信息:

jps -l 会列出所有 Java 进程和主类名,加 -v 还能看到 JVM 启动参数。

第二步用jstack查线程

jstack <pid> pid是上面jps得到的进程号

输出格式

线程名 内部线程编号 prio=(优先级别) tid=(JVM线程ID)nid=(操作系统线程 ID)

java.lang.Thread.State 线程状态:

状态 含义 常见原因
RUNNABLE 运行中/可运行 正常,但持续 RUNNABLE 可能是死循环
BLOCKED 等待获取锁 锁竞争,排查死锁看这个
WAITING 无限等待 wait() / join() / park()
TIMED_WAITING 限时等待 sleep() / wait(timeout),心跳线程正常就该是这个
NEW / TERMINATED 未启动/已结束 少见

死锁要查Found one Java-level deadlock 可以看线程等待情况

相关推荐
特立独行的猫A4 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
budingxiaomoli11 小时前
Spring统一功能处理
java·后端·spring
Flynn Liang12 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵13 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
文丑颜不良啊17 小时前
LeetCode2821~2840题目解析
java·leetcode
apcipot_rain17 小时前
C++转Java日记(10)
java·开发语言
简 洁 冬冬18 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型
LGL6030A18 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
Lansonli20 小时前
大数据Spark(八十八):Spark任务资源之Standalone集群测试
java·服务器·spark
budingxiaomoli20 小时前
Spring AOP
java·spring·java-ee