线程运行诊断

案例1:cpu占用过多

定位:

1. 用top定位哪个进程堆cpu的占用过高
2. ps H -eo pid,tid,%cpu | grep 进程id(此处查看哪个线程占用)
3. jstack 进程id(此处通过上一步的线程id转换为16进制,对比nid就可以知道哪行代码了)

案例2:程序运行很长的时间没有结果

定位:

1. 死锁排查可通过 top | grep java 查看重复出现的进程,可以定位
2. jstack 进程id

案例3:内存占用过多

定位:
1、用top定位哪个进程占用内存消耗过大

命令: top -c -b -o +%MEM | head -n 20 | tail -15
 
posted @ 2020-03-19 09:33  scwyfy  阅读(133)  评论(0编辑  收藏  举报