Linux下分析某个进程CPU占用率高的原因

 

Linux下分析某个进程CPU占用率高的原因

 

通过top命令找出消耗资源高的线程id,利用strace命令查看该线程所有系统调用 

 

1.top 查到占用cpu高的进程pid

 

2.查看该pid的线程:top -H -p 9532

  

3.查看这个线程所有系统调用:strace -p 10017

不停循环输出Connection timed out,让开发查看问题

 

 

追加:

(1)查看某一进程所有的系统调用并输出到文件中

strace -o /home/output.txt -T -tt -e trace=all -p 线程id

(2)查看某个进程中最耗时的线程

步骤1: ps --efL | grep 进程名 | grep -v grep
 
步骤2: gdb attach 进程id
 
步骤3: bt

(3)查看某一进程cpu占用比较高的线程

1) top -H -p 进程id  ----------查看耗时的线程
 
2) strace -o /home/output.txt -T -tt -e trace=all -p 线程id    ------------查看线程的堆栈,定位耗时的代码位置,将输出结果写入/home/output.txt

 

posted @ 2018-01-28 10:48  chenjianwen  阅读(1552)  评论(0编辑  收藏  举报