df命令卡死 报kernel:INFO:task df:107547 blocked for more than 120 seconds.

【现象】
CentOS 7.2 kernel 3.10
系统内执行df 命令,查看文件系统挂载,然后卡着没反应,也不能中断。
系统报kernel:INFO:task df:107547 blocked for more than 120 seconds.

【原因分析】
df 命令无法执行完成,此命令查看文件系统的挂载情况。
执行mount,显示出系统内所有挂载项:

单独执行 mount /boot , mount /home , 均可正常挂载系统目录。
sar -u
sar -r
sar -d 历史性能都是正常的
Strace df 追查df命令执行细节。
Systemd -l on /proc/sys/fs/binfmt_misc 发现执行到此挂载条目无法继续。造成120秒进程超时 blocked。
查细此文件系统含义:
这个内核功能允许您通过在shell中输入其名称来调用几乎所有程序。这包括例如编译的Java(TM),Python或Emacs程序。
要实现这一点,您必须告诉binfmt_misc必须使用哪个二进制文件调用哪个解释器。Binfmt_misc通过将文件开头的某些字节与您提供的魔术字节序列(屏蔽掉指定的位)进行匹配来识别二进制类型。Binfmt_misc还可以识别文件名扩展名aka .com或.exe。

扩展解释
https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html

【分析结论】
df 卡住问题在本质上还是由于 systemd 和 kernel 之间存在竞争而引起的, 导致其它程序访问挂载点的时候出现 hang 住的现象,

  1. systemctl restart proc-sys-fs-binfmt_misc.automount;
  2. 升级到最新 systemd-219-57 版本;
  3. 按照红帽知识库的步骤对 proc-sys-fs-binfmt_misc.automount 进行 mask 操作, 只进行静态的 mount 操作
    https://access.redhat.com/solutions/3346491#
    执行第1条,进行资源释放后,df 命令恢复正常。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值