一 关于线程相关的命令
- 查看进程中线程的相关信息
jstack 进程id
1.查看到进程中各个线程阻塞/等待在最多情况的源代码中,这个就是可能出现问题的代码(请求很慢,但是资源利用率不高的情况下)
2.多次执行上述命令,找出一直没有执行完成的线程,这个线程可能就是有异常的线程(一个线程被挂起的原因)
二 cpu情况使用排查
2.1 背景
通过TOP命令发现CPU占有率超过了100%
2.1.1 问题定位
- 定位到具体的线程(输入R可以按照cpu使用率排序)
top -Hp 进程id
- 将线程id转换为16进制
- 找到线程对应的具体代码
jstack 进程ID|grep -A 10 线程16进制
找到线程后面10行信息,可以定位到具体的代码信息