Linux下查看消耗CPU的线程

https://blog.csdn.net/qq_24949727/article/details/70738723

 

javaweb 项目部署后发现很耗cpu,需要查出问题所在

写个测试程序,记相关步骤:

故意写个死循环

 

 
  1. public class TestCpu {

  2.  
  3. public static void main(String[] args) {

  4. while (true){

  5. new Object();

  6. }

  7. }

  8. }

 

 

终端:

top

查看消耗cpu的进程 PID=2864

Linux下查看消耗CPU的线程

 

ps -mp 2864 -o THREAD,tid,time 查看线程TID=2866

Linux下查看消耗CPU的线程

 

把线程ID转为16进制

printf "%x\n" 2866

 

然后查看堆栈信息

jstack 2864 |grep b32 -A 30

Linux下查看消耗CPU的线程