Linux Find命令挂起

4

查找命令如下:

find / -path "/proc/*" -prune -o -iname "core."|grep -i "core\.[0-9]"|grep -v "\.gz"|grep -v "/man/"

在我们许多实验室中,此命令能够在几分钟内完成并正常工作。但在另一个实验室中,该命令挂起了超过1小时。

检查该实验室的“top”和“iostat -x -k”输出。 该实验室的CPU和I/O负载看起来正常,但是查找命令处于 S 状态。

------------ top ---------------

4203 root 15 0 652m 500m 636 S 9.7 1.6 148:34.69 find


任何提示/想法都会受到赞赏。


1
使用 strace 附加到进程并查看其休眠位置。 - user184968
@skwllsp,那个实验室里没有strace命令。 - Julian
然后尝试使用gdb进行附加。 - user184968
@skwllsp,仍然没有gdb命令 :( - Julian
我会从 /proc/* 中删除 /*。我还会修剪 /sys。我认为在管道之前的 find 命令末尾应该加上 -print - wurtel
显示剩余4条评论
1个回答

1

我找到了根本原因。它是由一个非常巨大的目录引起的。

[root@tt-na01-as01 export]# ll

drwxrwxr-x 2 system sysop 756490240 Nov 5 16:24 com.nsn.app.nbm.pm3gpp-1

这个目录太大了,即使是使用'ls'和'rm'命令也会卡住。

有没有关于如何删除这个巨大目录的建议?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接