关于大量文件的copy,delete操作方式效率初探
2016-08-10 10:32
651 查看
拷贝大量文件时,用cp有诸多不便(例如命令意外中断后,无法续传;如果强行覆盖的话,又会浪费时间;不覆盖的话,倒是可以通过echo "n"|cp -r /source /destination来完成,但是经过我的实验,在大量文件下,传递n给cp的覆盖提示也会时间延迟,所以对于已经存在的文件同样存在时间上的浪费)
rsync 拥有很多特性,可以避免上面提到cp的种种不便,但是考虑到操作大量文件,就不得不考虑效率
下面是对大量文件的拷贝、删除操作,基于cp、rm -rf、rsync三种方式的效率对比
实验过程拷贝47G的数据(大小基本分散在25M以下文件数量11041个)
一、拷贝
1、通过cp方式
time cp -rp -v /app/glusterfs/NetworkDisk /home/
real 16m29.876s
user 0m0.889s
sys 1m59.575s
2、rsync方式
time rsync -av /app/glusterfs/NetworkDisk /home/
real 16m34.557s
user 8m53.267s
sys 4m56.069s
二、删除
1、通过rm -rf
time rm -rf /home/NetworkDisk
real 0m3.341s
user 0m0.002s
sys 0m3.297s
2、通过rsync --delete
rsync -a --delete /empty /home/NetworkDisk
real 0m1.709s
user 0m0.014s
sys 0m1.573s
通过以上对比:
貌似在复制速度上,两者不相上下
而在删除操作上,我们看到rsync --delete 比rm -rf快了约2s。
为了得出更可信的结果,我又做了针对10W小文件的操作对比,如下
首先生成10W小文件
for i in {1..100000};do dd if=/dev/zero of=/app/test/$i bs=100k;done
一、拷贝
1、time cp -rp -v /app/test /home/
real 6m21.137s
user 0m1.848s
sys 0m34.099s
2、rsync -av /app/test /home/、
real 3m56.437s
user 1m53.502s
sys 1m21.125s
二、删除
1、rm -rf /app/test
real 0m4.527s
user 0m0.143s
sys 0m4.339s
2、rsync -a --delete /empty /app/test
real 0m0.122s
user 0m0.000s
sys 0m0.009s
通过以上对10W小文件的操作,可以得出结论,对于大量文件的拷贝、删除操作,rsync相比较cp和rm还是有很大优势的
最后附上一篇相关文章
http://www.linuxeden.com/html/news/20130613/140243.html
rsync 拥有很多特性,可以避免上面提到cp的种种不便,但是考虑到操作大量文件,就不得不考虑效率
下面是对大量文件的拷贝、删除操作,基于cp、rm -rf、rsync三种方式的效率对比
实验过程拷贝47G的数据(大小基本分散在25M以下文件数量11041个)
一、拷贝
1、通过cp方式
time cp -rp -v /app/glusterfs/NetworkDisk /home/
real 16m29.876s
user 0m0.889s
sys 1m59.575s
2、rsync方式
time rsync -av /app/glusterfs/NetworkDisk /home/
real 16m34.557s
user 8m53.267s
sys 4m56.069s
二、删除
1、通过rm -rf
time rm -rf /home/NetworkDisk
real 0m3.341s
user 0m0.002s
sys 0m3.297s
2、通过rsync --delete
rsync -a --delete /empty /home/NetworkDisk
real 0m1.709s
user 0m0.014s
sys 0m1.573s
通过以上对比:
貌似在复制速度上,两者不相上下
而在删除操作上,我们看到rsync --delete 比rm -rf快了约2s。
为了得出更可信的结果,我又做了针对10W小文件的操作对比,如下
首先生成10W小文件
for i in {1..100000};do dd if=/dev/zero of=/app/test/$i bs=100k;done
一、拷贝
1、time cp -rp -v /app/test /home/
real 6m21.137s
user 0m1.848s
sys 0m34.099s
2、rsync -av /app/test /home/、
real 3m56.437s
user 1m53.502s
sys 1m21.125s
二、删除
1、rm -rf /app/test
real 0m4.527s
user 0m0.143s
sys 0m4.339s
2、rsync -a --delete /empty /app/test
real 0m0.122s
user 0m0.000s
sys 0m0.009s
通过以上对10W小文件的操作,可以得出结论,对于大量文件的拷贝、删除操作,rsync相比较cp和rm还是有很大优势的
最后附上一篇相关文章
http://www.linuxeden.com/html/news/20130613/140243.html
相关文章推荐
- 关于大量文件的copy,delete操作方式效率初探
- 关于文件操作的文件格式与打开方式
- 使用maven打war包过程中对文件进行copy、rename(move)、delete操作
- Python 文件/文件夹操作(读写read/write、复制copy、删除delete、重命名rename)
- TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别具体到性能,效率,操作方式等方面
- TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别具体到性能,效率,操作方式等方面
- 关于java下的明确编码方式的文件读写操作总结
- 基于流的文件操作方式
- 关于使用ODBC+VC操作DBF文件问题小结
- VB中更好的文件操作方式
- 以程序的方式操作NTFS的文件权限
- VB中文件操作的两种方式
- VB中关于文件及二进制操作的经验
- java操作文件常用方式
- 关于《以前的某个程序安装已在安装计算机上创建挂起的文件操作》的解决办法
- C++中关于文件操作的函数
- DELPHI关于文件操作集锦
- 关于VB中的commondialog(打开文件,存储文件,打开打印机操作控件)
- 关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作解决办法(SQL2000)
- 关于delphi的log的class已经完成,一如既往的open 他delphi ,日志class,临界区,文件操作