linux系统排查线程阻塞问题

问题引入:在工作中会遇到某个程序占用cpu高或者不响应请求等问题,对于这类问题的排查首先考虑程序中是不是有线程阻塞。

首先,使用ps查看程序的进程号。

[root@Joe ~]# ps -ef|grep ProgramName
root     11694 11607  1 Nov11 ?        00:12:51 ./ProgramName

第二、可以使用pstack查询程序的栈跟踪

[root@Joe ~]# pstack 11694

保存两次打印的栈跟踪信息,并比较分析

[root@Joe ~]# pstack 11694 > one
[root@Joe ~]# pstack 11694 > two
[root@Joe ~]# diff one two

第三、使用strace跟踪进程执行时的系统调用和所接收的信号

[root@Joe ~]# strace -p 11694

知识点延伸:

在排查这些问题时,还可能会使用top,netstat -anp等。

猜你喜欢

转载自blog.csdn.net/qq_42609381/article/details/81412266
今日推荐