查看各个进程运行信息
top
查看指定进程中线程所占CPU
ps h -eo pid,tid,%cpu | grep pid
- h: 查看线程信息
- eo: 输出指定的一些信息
- pid: 进程id
- tid: 线程id
- grep: 管道符
查看对应的线程dump信息
查看线程栈信息找到cpu占用较高的线程CPU是重要的计算资源,CPU执行的最小单元是线程,所以有以下几种情况导致CPU飙高: 由于线程频繁阻塞导致CPU上下文的频繁切换,导致大量资源都消耗在内核态与用户态之间的切换上,也就是内存、寄存器、文件fd等信息的保存与恢复上。常见的线程阻塞原因有文件IO、网络IO阻塞、抢锁等。 nid为16进制的线程id,先将查到的tid转为16进制,再去dump文件中查看对应的nid
jstack pid