我在RHEL服务器上生成了超过50GB的缓存文件(典型文件大小为200kb,因此没有大量文件).当我尝试删除这些文件时,需要8-10个小时.
然而,更大的问题是系统负载在这8-10小时内变得至关重要.无论如何,在删除期间我可以控制系统负载.
我试过用
nice -n19 rm -rf *
但这对系统负载没有帮助.
附:我在superuser.com问了同样的问题,但没有得到足够好的答案,所以在这里尝试.
解决方法
这里有一些
benchmarks用于各种操作和文件系统供您参考. (在繁忙的系统上,你当然会得到不同的结果,但希望这会让你知道会发生什么).
如果我在你的椅子上,我会尝试获得该场景的基线基准:
>确定操作将在与其他所有设备隔离的裸硬件上花费多长时间(是的,它应该花费很多,甚至在相当旧的硬件上需要7-8小时). >尝试添加通常以受控方式发生的其他操作,并查看实际运行这么长时间的操作
一些数字.
在5岁的笔记本上, ext3安装rw,noatime,跑顶,没什么 使用shell脚本create10kdirs.sh创建10k目录
#!/bin/bash
for i in $(seq 10000)
do
mkdir $i
done
sudo时间./create10kdirs.sh 24.59user 20.70system 0:47.04elapsed 96%CPU(0avgtext 0avgdata 0maxresident)k80inputs 8outputs(1major 2735150minor)pagefaults 0swaps
删除10k目录 sudo time rm -rf 0.10user 19.75system 0:20.71elapsed 95%CPU(0avgtext 0avgdata 0maxresident)k0inputs 8outputs(0major 222minor)pagefaults 0swaps
相同的硬件,ext4安装rw,noatime 用shell脚本创建10k目录 sudo时间create10kdirs.sh 23.96user 22.31system 0:49.26elapsed 93%CPU(0avgtext 0avgdata0maxresident)k1896inputs 8outputs(20major 2715174minor)pagefaults 0swaps
删除10k目录 sudo time rm -rf 0.13user 16.96system 0:28.21elapsed 60%CPU(0avgtext 0avgdata0maxresident)k10160inputs 0outputs(1major 219minor)pagefaults0swaps
4岁的笔记本电脑,xfs安装了rw,relatime,nobarrier在USB上 sudo时间create10kdirs.sh 14.19user 13.86system 0:29.75elapsed 94%CPU(0avgtext 0avgdata0maxresident)k432inputs 0outputs(1major 2735243minor)pagefaults 0swaps
删除10k目录 sudo time rm -rf 0.13user 2.65system 0:08.20elapsed 33%CPU(0avgtext 0avgdata 0maxresident)k120inputs 0outputs(1major 222minor)pagefaults 0swaps
结论: 这个旧硬件将在大约21s * 40 = 12m40s内擦除ext3上的400k小文件夹.在xfs(与nobarriers)上,它将在大约5分20秒内完成. 在两个测试用例中,测试机器都没有负载很重,但对我来说,似乎你的问题与你选择的文件系统没有严格的关系.
EDIT2 此外,在运行上面的基准测试后,我去尝试删除 找 . -mindepth 1 -maxdepth 1 -delete
和结果!:
EXT3 删除10k目录 sudo时间找到. -mindepth 1 -maxdepth 1 -delete 0.04user 0.44system 0:00.88elapsed 55%CPU(0avgtext 0avgdata 0maxresident)k516inputs 8outputs(1major 688minor)pagefaults0swaps
EXT4 删除10k目录 sudo时间找到. -mindepth 1 -maxdepth 1 -delete 0.05user 0.66system 0:01.02elapsed 70%CPU(0avgtext 0avgdata 0maxresident)k568inputs 0outputs(1major 689minor)pagefaults swaps
XFS 删除10k目录 sudo时间找到. -mindepth 1 -maxdepth 1 -delete 0.06user 0.84system 0:04.55elapsed 19%CPU(0avgtext 0avgdata 0maxresident)k416inputs 0outputs(3major 685minor)pagefaults 0swaps
真正的结论是rm -rf不是很聪明,而且它对大树的表现不佳. (假设我的测试用例真的很有代表性).
注意:我也测试了xargs变体并且速度很快,但速度不如上面那么快. (编辑:岳阳站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|