cpu相关问题排查

249 阅读1分钟

一 关于线程相关的命令

  • 查看进程中线程的相关信息
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行信息,可以定位到具体的代码信息