设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

Linux技巧:一次删除一百万个文件的最快方法

2013-6-13 10:35| 发布者: 红黑魂| 查看: 8125| 评论: 2|来自: 开源中国

摘要: 最初的测评昨天,我看到一个非常有趣的删除一个目录下的海量文件的方法。这个方法来自http://www.quora.com/How-can-someone-rapidly-delete-400-000-files里的Zhenyu Lee。他没有使用find或xargs,他很有创意的利用 ...

最初的测评

昨天,我看到一个非常有趣的删除一个目录下的海量文件的方法。这个方法来自http://www.quora.com/How-can-someone-rapidly-delete-400-000-files里的Zhenyu Lee。

他没有使用find 或 xargs,他很有创意的利用了rsync的强大功能,使用rsync –delete将目标文件夹以一个空文件夹来替换。之后,我做了一个实验来比较各种方法。让我吃惊的是,Lee的方法要比其它的快的多。下面就是我的测评。

环境:

  • CPU:英特尔(R)酷睿(TM)2双核CPU E8400@3.00GHz
  • MEM:4G
  • 高清:的ST3250318AS:250G/7200RPM
方法文件#删除时间
rsync的一个删除空/ S1 /10000006m50.638s
找到S2 /型F删除100000087m38.826s
找到S3 /型F | xargs的-L 100室100000083m36.851s
找到S4 /型F | xargs的-L 100-P 100马币100000078m4.658s
RM-RF S5100000080m33.434s

使用 –delete 和 –exclude,你可以选择性删除符合条件的文件。还有一点,当你需要保留这个目录做其它用处时,这种方法是再适合不过了。

重新测评

几天前,Keith-Winstein在回复Quora上的这个帖子时说我之前的测评无法复制,因为操作的时间持续的太久。我澄清一下,这些数据过大,可能是因为我的计算机在过去的几年里做的事太多,测评中可能存在一些文件系统错误。但我不确定是这些原因。现在好了,我弄了一天比较新的计算机,把测评再做一次。这次我使用/usr/bin/time,它能提供更详细的信息。下面就是新的结果。

(每次都是1000000个文件,每个文件的体积都是0。)

命令过去系统时间%的CPUCS(成交量/国际富豪)
rsync的一个删除空/10.601.3195二十二分之一百○六
发现B /型F删除28.5114.465211分之14849
找到C / F型| xargs的-L 100室41.6920.605415074分之37048
找到D / F型| xargs的-L 100-P 100室34.3227.8289二万一千七百二十分之九十二万九千八百九十七
RM-RF系列F31.2914.8047一十一分之一万五千一百三十四

原始输出

#方法1
〜/测试/ usr / bin中/时间-V的rsync的一个 - 删除空/ /
        命令被定时:“rsync的一个 - 删除空/ /”
        用户时间(秒):1.31
        系统时间(秒):10.60
        %的CPU这份工作了:95%
        经过(挂钟)时间(H:MM:SS或m:SS):0:12.42
        平均共享文本大小(字节):0
        一般非共享数据大小(字节):0
        平均堆栈大小(字节):0
        平均总大小(字节):0
        最大驻留集大小(字节):0
        平均驻留集大小(字节):0
        主要页面(需要I / O)故障:0
        未成年人(回收一帧)页面故障:24378
        自愿上下文切换:106
        非自愿的上下文切换:22
        掉期:0
        文件系统输入:0
        文件系统输出:0
        套接字发送的消息:0
        插座收到的消息:0
        信号:0
        页大小(字节):4096
        退出状态:0

#方法2
        定时命令:“找到B /型F-删除”
        用户时间(秒):0.41
        系统时间(秒):14.46
        %的CPU这份工作了:52%
        经过(挂钟)时间(H:MM:SS或m:SS):0:28.51
        平均共享文本大小(字节):0
        一般非共享数据大小(字节):0
        平均堆栈大小(字节):0
        平均总大小(字节):0
        最大驻留集大小(字节):0
        平均驻留集大小(字节):0
        主要页面(需要I / O)故障:0
        未成年人(回收一帧)页面故障:11749
        自愿上下文切换:14849
        非自愿的上下文切换:11
        掉期:0
        文件系统输入:0
        文件系统输出:0
        套接字发送的消息:0
        插座收到的消息:0
        信号:0
        页大小(字节):4096
        退出状态:0
#方法3
找到C / F型| xargs的-L 100室
〜/测试/ usr / bin中/时间-V / delete.sh
        定时命令:“/ delete.sh”
        用户时间(秒):2.06
        系统时间(秒):20.60
        %的CPU这份工作了:54%
        经过(挂钟)时间(H:MM:SS或m:SS):0:41.69
        平均共享文本大小(字节):0
        一般非共享数据大小(字节):0
        平均堆栈大小(字节):0
        平均总大小(字节):0
        最大驻留集大小(字节):0
        平均驻留集大小(字节):0
        主要页面(需要I / O)故障:0
        未成年人(回收一帧)页面故障:1764225
        自愿上下文切换:37048
        非自愿的上下文切换:15074
        掉期:0
        文件系统输入:0
        文件系统输出:0
        套接字发送的消息:0
        插座收到的消息:0
        信号:0
        页大小(字节):4096
        退出状态:0

#4方法
找到D / F型| xargs的-L 100-P 100室
〜/测试/ usr / bin中/时间-V / delete.sh
        定时命令:“/ delete.sh”
        用户时间(秒):2.86
        系统时间(秒):27.82
        %的CPU这份工作了:89%
        经过(挂钟)时间(H:MM:SS或m:SS):0:34.32
        平均共享文本大小(字节):0
        一般非共享数据大小(字节):0
        平均堆栈大小(字节):0
        平均总大小(字节):0
        最大驻留集大小(字节):0
        平均驻留集大小(字节):0
        主要页面(需要I / O)故障:0
        未成年人(回收一帧)页面故障:1764278
        自愿上下文切换:929897
        非自愿的上下文切换:21720
        掉期:0
        文件系统输入:0
        文件系统输出:0
        套接字发送的消息:0
        插座收到的消息:0
        信号:0
        页大小(字节):4096
        退出状态:0

5#方法
〜/测试$ / usr / bin中/分时的V RM-RF系列F
        命令被定时:“RM-RF系列F”
        用户时间(秒):0.20
        系统时间(秒):14.80
        %的CPU这份工作了:47%
        经过(挂钟)时间(H:MM:SS或m:SS):0:31.29
        平均共享文本大小(字节):0
        一般非共享数据大小(字节):0
        平均堆栈大小(字节):0
        平均总大小(字节):0
        最大驻留集大小(字节):0
        平均驻留集大小(字节):0
        主要页面(需要I / O)故障:0
        未成年人(回收一帧)页面故障:176
        自愿上下文切换:15134
        非自愿的上下文切换:11
        掉期:0
        文件系统输入:0
        文件系统输出:0
        套接字发送的消息:0
        插座收到的消息:0
        信号:0
        页大小(字节):4096
        退出状态:0

我真的十分好奇为什么李的方法要比其它的快,竟然比RM-RF也要快。如果有人知道,请写在下面,非常感谢。

[英文原文: 一个更快的方法,在一个目录中的文件删除数百万 ]

酷毙
2

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (2 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部