centos7 df -h运行hang的故障解决
问题描述
df -h 运行后,长时间hang住,无任何错误输出 ,只能关闭shell,重新登录shell会发现之前的df进程还在
问题查找
- 排除nfs故障
首先怀疑是nfs 相关故障引起的,检查nfs目录,可以正常访问,于是尝试快速重启 nfs 后,故障依旧。
- 跟踪下df的执行,运行 strace df -h
发现hang的地方如下
...... stat("/proc/sys/fs/binfmt_misc",
proc是系统目录,fs是文件系统相关,看样子是系统进程出了什么问题。不清楚这个binfmt_misc是什么,于是搜索了一下,发现有不少出现相同问题的 点进去看了下,大意是安装系统更新的时候更新了systemd,但没有重启主机或者重启systemd导致的。
顺便也看了下 mount的结果
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
- 按照文中的解决方式尝试解决
运行 systemctl restart proc-sys-fs-binfmt_misc.automount
执行后,系统里面hang住的 df进程都自动退出了。再执行df -h就可以输出结果了
- 解决后的状态
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
发现故障时的timeout=300变为等于0了。
致谢与参考