- 1. 先启用测试项目
- 2. 通过命令查询当前cpu及内存使用率
- 3. 调用测试项目死锁接口
- 4. Jps
- 5. Jstack 74232(jps对应jar的进程),可以查到死锁的线程
- 6. 调用测试死循环接口
- 7. 找到对应java进程 74232
- 8. 定位进程
- 9. 定位线程
- 10. 转换为16进制
- 11. 根据该线程查占用资源
该项目内有一个死锁和一个死循环
nohup java -jar -Deserver.port=8088 thread-demo-0.0.1-SNAPSHOT.jar2. 通过命令查询当前cpu及内存使用率
先连接ssh
top3. 调用测试项目死锁接口
死锁线程是阻塞状态,不会占满cpu
curl http:127.0.0.1:8088/loop4. Jps
jps5. Jstack 74232(jps对应jar的进程),可以查到死锁的线程
jstack 742326. 调用测试死循环接口
死循环会占满cpu
curl http:127.0.0.1:8088/loop7. 找到对应java进程 74232 8. 定位进程
**展示进程和占用资源的排行榜,找到对应PID **
top -c9. 定位线程
定位到这个进程最消耗cpu的线程PID 74318
top -H -p 7423210. 转换为16进制
返回对应的16进制0x1224e
printf "0x%xn" 7431811. 根据该线程查占用资源
根据占用资源多的进程及线程里面占用最高的线程
jstack 74232 | grep -A 20 0x1224e



