Linux运维22:应用或命令卡住问题跟踪方法

 系列专题:Linux运维入门教程 


        在Linux系统使用过程中,可能由于某种原因导致某个应用或者命令卡住,并处于D+状态。对于这种问题,要进行初步定为和分析,为后面的研发人员分析和解决问题,提供帮助。本文将将此类问题的排查的方法和思路分享给各位,希望对您有所帮助。

1. 问题描述:

        命令行执行“df -h”卡住,无法退出,如下图:

2. 问题跟踪:

1. 查看线程状态

         当前df线程(pid=2468)处于D+状态,即不可打断的睡眠状态,所以是无法杀死的。

2. 查看问题线程堆栈cat /proc/<pid>/stack

[root@devvm ~]# cat /proc/2468/stack 
[<ffffffffc09bafe4>] rpc_wait_bit_killable+0x24/0xb0 [sunrpc]
[<ffffffffc09bd284>] __rpc_execute+0x154/0x420 [sunrpc]
[<ffffffffc09bfa48>] rpc_execute+0x68/0xc0 [sunrpc]
[<ffffffffc09ae7e6>] rpc_run_task+0xf6/0x150 [sunrpc]
[<ffffffffc09ae950>] rpc_call_sync+0x50/0xc0 [sunrpc]
[<ffffffffc0b0c72e>] nfs3_rpc_wrapper.constprop.11+0x6e/0xb0 [nfsv3]
[<ffffffffc0b0d406>] nfs3_proc_getattr+0x56/0xb0 [nfsv3]
[<ffffffffc0a336e8>] __nfs_revalidate_inode+0xd8/0x350 [nfs]
[<ffffffffc0a33d45>] nfs_getattr+0x95/0x250 [nfs]
[<ffffffffbde534a9>] vfs_getattr+0x49/0x80
[<ffffffffbde535d5>] vfs_fstatat+0x75/0xc0
[<ffffffffbde5397e>] SYSC_newstat+0x2e/0x60
[<ffffffffbde53e3e>] SyS_newstat+0xe/0x10
[<ffffffffbe393f92>] system_call_fastpath+0x25/0x2a
[<ffffffffffffffff>] 0xffffffffffffffff
[root@devvm ~]# 

        df线程明显是卡在等待nfs的rpc答复过程中。

3. 通过mount查看系统挂载的nfs共享目录

        说明,此时只能通过mount命令查看,df会卡住。

         检查与nfs服务器的网络连通性如何。

 由此可知,是网络导致df获取nfs共享目录状态时卡住。

3. 解决问题

1. 修复网络

     通过网络运维等手段,修复网络,使之连通性恢复正常


 2. 查看df结果

        df线程恢复正常,并返回结果 

所有线程或命令卡住的追踪思路大致均如此。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoungerChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值