linux系统排查线程阻塞问题

程序故障排查技巧
本文介绍了一种通过查看进程状态和栈跟踪来诊断程序故障的方法,包括如何使用ps、pstack和strace等工具来定位线程阻塞问题,并提供了一些额外的故障排查工具如top和netstat-anp。

问题引入:在工作中会遇到某个程序占用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等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值