如何定位占用cpu过高的线程

如何定位占用cpu过高的线程

近来发现平台应用响应越来越慢,通过top命令发现,cpu占用率越来越高

 

1. 首先根据top命令,发现占用cpu最高的进程PID:3075.

  通过ps aux | grep PID命令,进一步查看当前进程的具体信息。

2. 显示当前进程下的所有线程列表

  ps -mp pid -o THREAD,tid,time

找到耗时最高的线程TID,并将其线程ID转换为16进制格式:

  printf "%x\n" tid

 

3. 打印线程的堆栈信息,thread dump

  jstack pid |grep tid -A 30

  进一步分析堆栈信息,就会定位到问题所在

 

posted @ 2016-11-28 14:51  crazyfish  阅读(8718)  评论(0编辑  收藏  举报