我一直在尝试使用rm -Rf /root/FFDC从centos服务器删除过去15个小时的目录,并且遇到了很大的困难。 我不能做一个目录列表,因为它挂起了系统(太多的文件?),但我能看到的是目录大小不是通常的4096字节,而是488MB!
[root@IS-11034 ~]# ls -al total 11760008 drwxr-x--- 31 root root 4096 Aug 10 18:28 . drwxr-xr-x 25 root root 4096 Aug 10 16:50 .. drwxr-xr-x 2 root root 488701952 Aug 11 12:20 FFDC
我已经检查了inode,一切似乎都很好。 我已经检查了最高和rm仍然使用CPU在15个小时后在0.7%。 文件系统types是ext3。
除了备份和格式之外,我现在无能为力了。
甚至ls -1f /root/FFDC慢? 使用-1f时,输出将不会被sorting,文件详细信息将被忽略。
如果上面的ls运行得很快,可能就像find /root/FFDC | xargs rm -vf find /root/FFDC | xargs rm -vf会更快吗? 一个正常的rm -rf可以做所有可能跳过的recursion。 或者不然。
您的文件系统是否安装了同步选项? 如果是这样的话,那么写/删除的性能比使用asynchronous的速度慢得多。 如果有疑问,你可以尝试mount -o remount,async / (或mount -o remount,async /root如果这是一个单独的文件系统)。
你有没有考虑卸载文件系统,然后运行e2fsck检查文件系统的错误? 我会在备份,格式化,还原之前尝试这个。
在文件系统上运行fsck将会解决这个问题。 它通常发生在一个目录用来包含许多文件,但现在不再。 目录大小是一个巨大的数字,性能受损。
我不确定fsck(8)将重新组织目录,您可以尝试-D标志(如e2fsck(8) )。 如果没有,并且如果在那个目录中确实没有数百万个文件,则可能类似下面的文件给出了一个合理大小的目录:
cd / root mv FFDC FFCD-old mkdir FFCD#调整FFDC的权限mv FFDC-old / * FFDC#检查/移动FFDC旧的rmdir中的任何.xxx文件/目录FFCD-old
至less有几个bash版本得到像.a[^.]*错误和包括的球体. 和..无论如何,否则你可能会尝试下一步作为mv FFDC-old/.* FFDC
像ext3 / ext4这样的文件系统处理目录本质上是作为不可移动节点的链接列表,当文件被解除链接时,名称的空间被释放(并且应该与空闲的邻居条目合并,如果有的话)。 所以可以创build一个文件很less的巨大的目录,但这并不容易。 也许创build数百万个硬链接到相同的几个文件? 用精心打造的名字创build/删除数以百万计的链接? 无论发生什么事情都要创造这个值得调查的事情; 这是一个恶作剧,某种文件系统故障,…?