对于Windows用户,拷贝文件是再常用不过的功能。打开文件浏览器(FileExplorer),把一个盘符的一个文件夹拖拽到另一个盘符下面是非常简单的操作。这样的文件拖拽操作在两端都是本地盘的情况下速度是可以接受的。但是,一旦进入到网络环境,传输的延迟比起本地盘要放大很多倍。这时候如果用户拷贝的小文件较多,用户马上会感知到传输很慢,并且开始怀疑是不是系统哪里出了问题。其实根本原因是文件浏览器的复制实现比较简单,而且是单线程操作,在传输延迟比较大的时候因为小文件数量多,每一个都要耗费一次传输确认,整个传输速度就会下降很多。
阿里云NAS SMB文件存储组经常收到用户的相关反馈,觉得使用时拷贝速度较慢。我们的上一篇文章(
从用户Windows系统到阿里云NAS SMB服务:常用数据迁移备份工具
)中初步介绍了一下Windows中常用的数据迁移工具。本文集中测试了市面上主流的Windows文件拷贝工具,并根据速度测试和综合测评的结果为大家进行了分析和推荐。
为了方便没有时间阅读全篇的朋友,我们把最后总结的一句话放在这里:
如果觉得Windows文件管理器拷贝太慢,请用Robocopy命令行工具(不要用图形界面的Robocopy),比如:robocopy c:\dirA z:\dirB /e /z /b /mt:32
Windows中常用拷贝工具
文件浏览器(FileExplorer)中的拖拽拷贝
文件浏览器中的拖拽拷贝是大家最常用的拷贝方式。界面友好易用,但是它的缺点也很明显:单线程拷贝、没法充分利用资源、没有重试等功能。
图1:文件浏览器拷贝窗口
命令行工具
1. Copy命令
Copy命令在DOS时代就出现的拷贝命令。该命令只能拷贝一个文件夹下的第一层目录或者文件,无法把整个文件树拷贝到另一个文件夹下面。所以在这里我们就不把它加入到后面的对比实验中。有兴趣的朋友可以看相关维基页面。
2. Xcopy命令
作为后来者,Xcopy命令可以拷贝文件夹下的整个文件树,也可以拷贝诸如文件权限控制属性等文件信息。但是Xcopy无法支持多线程,同时文件路径不能超过256字,这些都局限了Xcopy的使用,也使得新一代的工具Robocopy应运而生。
3. Robocopy命令
从Windows Vista和Windows 2008开始,Robocopy成了Windows推荐的拷贝命令。Robocopy可以设置多线程模式,还具有一定的流量控制功能。所以Robocopy也是我们阿里云NAS SMB组推荐的Windows原生拷贝工具。
图2:Robocopy命令
带图形界面(GUI)的Windows拷贝工具
虽然命令行工具比如Robocopy很好用,但是大部分Windows用户都习惯图形界面,所以我们也考察了常用的带图形界面的Windows拷贝工具,以作参考。
在实际实验之后,我们发现图形界面Robocopy比如EazyCopy和WinRobocopy实际上都不支持多线程。所以我们强烈建议需要提升拷贝性能的用直接使用Robocopy命令行工具。
1. EazyCopy
这是在Github上开源的一个Robocopy图形界面。该软件看上去支持多线程但是实际使用中却只有一个线程。用/mt:8的速度还不如不开启多线程。
图3:EazyCopy界面
2. RichCopy 4
这个是微软曾经推出过的图形界面拷贝工具,但是从2009年6月开始就已经被微软放弃。维基百科上可以下载。
图4:RichCopy 4界面
3. UltraCopier
这也是个名气比较大的一个跨平台的具有图形界面的拷贝工具。但是并没有软件签名,不能直接在阿里云虚拟机上安装。有需要的用户可以在Windows中打开开发人员模式并解除该exe文件的锁定。
这个工具并不会直接打开一个主页面,必须要在屏幕右下角的系统图标中找到UltraCopier并且鼠标右键点击并选择拷贝。然后再选择拷贝的源文件和目标文件。使用的体验并不是很好。不过它可以生成日志文件记录每次拷贝操作的基本情况。
图5:UltraCopier界面
4. TeraCopy
这是由Code Sector组织开发的的收费软件,也是一个具有图形界面的Windows拷贝工具。
图6:TeraCopy界面
5. RoboCopy
这是SourceForge上一个开源的Robocopy图形界面。实测中发现它无法启动拷贝。所以也没有列入到后面的评测中。
图7:RoboCopy界面
6. ExtremeCopy
Easersoft公司开发的可视化拷贝工具。主页上号称比文件管理器的拷贝快20%到120%。
图8:ExtremeCopy界面
第三方开发的文件浏览器
其实如果Windows做的文件浏览器具有多线程等较高级的拷贝功能,那完全就不需要专用的拷贝工具了。毕竟使用文件浏览器更加通用直观,方便使用。顺着这个思路,我们将目光投向了第三方开发的文件浏览器,期望其中的某一款能够集成更高级的拷贝功能。
既然官方的文件管理器不能满足需求,我们测试了一些主流的文件浏览器作为对比。如果想了解各家文件浏览器的特色,请看维基百科的文件浏览器比较页面:
https://en.wikipedia.org/wiki/Comparison_of_file_managers
1. XYplorer
XYplorer第一版在1999年就推出了,一直是Windows操作系统上比较老牌的文件浏览器。XYplorer的拷贝直接用的官方文件管理器的拷贝,界面相同。它是收费软件,有30天试用期。
图9:XYplorer界面
2. Directory Opus 12
Directory Opus出现得更早,第一版出道自1990年一月,其最新版是Directory Opus 12。该软件界面十分精美,拷贝界面也进行了重做。不过拷贝速度相比官方文件管理器并无提高。它也是收费软件,有30天试用期。
图10:DIrectory Opus 12界面
3. Explorer++
相比前两款收费软件,Explorer++完全免费并且开源。不过它所用的拷贝也是官方文件管理器自带的拷贝。
图11:Explorer++界面
非Windows平台独享的拷贝工具
介绍了上述多个Windows平台专享的拷贝工具之后,我们还评测了一下非Windows平台独享但是Windows可用的拷贝工具。
1. Rsync
Linux/Unix下常用的拷贝工具。需要安装Cygwin。测试下来速度并不快。
图12:Rsync命令
2. Rclone
Rclone不仅可以用来在文件系统中拷贝文件,也可以与主流云厂商的存储进行互联,支持FTP、HTTP等多种网络传输协议。Rclone有独立的Windows安装包,不需要依赖Cygwin。
图13:Rclone命令
3. NasTool
NasTool工具是阿里云文件系统存储(NAS)开发的数据迁移工具。基于JAVA语言,具有多线程、流量控制和校对功能。如果客户可以安装JAVA环境也懂得用命令行,可以使用NasTool来快速拷贝数据到NAS SMB文件卷。不过需要注意的是现阶段NasTool不会拷贝文件控制权限等文件属性。
图14:NasTool命令
拷贝速度评测实验结果
为了实测上述十余种常用工具的拷贝速度,我们设计了如下实验:
在阿里云华东1(杭州)可用区F创建了一个带有两块本地SSD盘的ECS虚拟机,操作系统为Windows Server 2016。该ECS虚拟机的参数如下:
拷贝速度测试所用虚拟机参数
| |||||||
测试机型
|
机型名称
|
核心数
|
内存
|
本地硬盘
|
CPU型号
|
CPU主频
|
网络
|
本地SSD型 i1
|
ecs.i1.xlarge
|
4 vCPU
|
16 GiB Memory
|
2 * 104 GiB SSD
|
Intel Xeon E5-2682v4
|
2.5 GHz
|
20 万 PPS
|
表1: 测试用虚拟机机型
同时我们在华东1可用区F创建了一个SSD性能型NAS SMB文件卷。
我们用Windows Server 2016的Windows文件夹下的前36%文件作为拷贝对象,大小为2.45GB,包含4967个文件,2711个文件夹。
用上述拷贝工具分别进行本地盘1到本地盘2的拷贝,以及本地盘1到NAS SMB文件卷的拷贝,记录拷贝时间进行比较。结果如下表所示:
Windows常用拷贝工具拷贝速度对比
| ||||
No.
|
拷贝工具
|
操作方式
|
本地盘1到本地盘2的平均速度(MB/s)
|
本地盘1到NAS SMB文件卷的平均速度(MB/s)
|
1
|
文件管理器中拖拽文件夹
|
|
32.16
|
12.36
|
2
|
XCopy
|
xcopy d:\windows z:\windows2 /E /V /C /F /H /Y /Z
|
41.13
|
6.08
|
3
|
Robocopy
|
robocopy d:\Windows z:\Windows2 /e
|
39.73
|
8.65
|
4
|
Robocopy,8线程
|
robocopy d:\Windows z:\Windows2 /e /mt:8
|
48.54
|
27.45
|
6
|
EazyCopy,8线程
|
robocopy d:\Windows z:\Windows2 /e /mt:8
|
8.56
|
4.18
|
6
|
RichCopy 4
|
|
41.13
|
9.36
|
7
|
UltraCopier
|
|
21.26
|
10.04
|
8
|
TeraCopy
|
|
47.34
|
8.90
|
9
|
ExtremeCopy
|
|
32.58
|
12.74
|
10
|
XYplorer
|
|
31.36
|
10.28
|
11
|
Directory Opus 12
|
|
28.19
|
11.89
|
12
|
Explorer++
|
|
26.41
|
10.16
|
13
|
Rsync
|
|
29.87
|
3.00
|
14
|
Rclone
|
rclone.exe copy "d:\Windows" "z:\Windows2"
|
68.75
|
22.19
|
15
|
NasTool
|
|
77.43
|
33.45
|
表2:Windows常用拷贝工具拷贝速度对比
对于速度测试的结果可以做如下解读:
1. 多线程状态下的Robocopy以及Rclone、NasTool三个工具属于一个档次,速度最快;
2. Xcopy、RichCopy4、TeraCopy、ExtremeCopy略快于文件管理器;
3. 文件管理器拷贝速度中等;
4. EazyCopy因为软件有问题速度很慢;Rsync速度也比较慢,可能和套了一层Cygwin有关。
综合评测结果和总结
除了速度相关的测评,我们也根据我们的使用感受进行综合评测,总结如下表所示:
Windows常用拷贝工具综合对比
|
| |||
No.
|
拷贝工具
|
使用难度
|
速度
|
总评
|
1
|
文件管理器中拖拽文件夹
|
极简
|
中
|
优
|
2
|
XCopy
|
中等
|
快
|
良
|
3
|
Robocopy
|
中等
|
极快
|
优
|
6
|
EazyCopy
|
简单
|
慢
|
差
|
6
|
RichCopy 4
|
简单
|
快
|
良
|
7
|
UltraCopier
|
中等
|
快
|
良
|
8
|
TeraCopy
|
较难
|
快
|
差
|
9
|
ExtremeCopy
|
简单
|
快
|
良
|
10
|
XYplorer
|
极简
|
中
|
优
|
11
|
Directory Opus 12
|
简单
|
中
|
良
|
12
|
Explorer++
|
简单
|
中
|
良
|
13
|
Rsync
|
中等
|
慢
|
差
|
14
|
Rclone
|
中等
|
极快
|
优
|
15
|
NasTool
|
中等
|
极快
|
优
|
表3:Windows常用拷贝工具综合对比
把上面的综合评测表进行一个更为简短的总结:
1. Windows自带的文件管理器其实是很优秀的,速度并不慢,操作也非常简便,而且拷贝时会拷贝诸如文件控制权限等信息;
3. 跨平台的拷贝工具诸如Rclone和NasTool速度很快,但是现在还不能够处理好文件控制权限等信息的拷贝。对于高级的文件拷贝我们还是推荐用微软开发的Robocopy;
4. 其他的图形界面拷贝工具或者第三方文件管理器相比Windows文件管理器并没有特别突出的优点。特别是几个主流的第三方文件管理器直接用的官方的拷贝工具。所以我们也并不推荐用户花时间去使用。
最后总结成一句话就是:如果觉得官方文件管理器拷贝太慢,请用Robocopy!
附录
1. 从用户Windows系统到阿里云NAS SMB服务:常用数据迁移备份工具:https://yq.aliyun.com/articles/325378
2. Copy命令:https://en.wikipedia.org/wiki/Copy_(command)
3. Xcopy命令:https://en.wikipedia.org/wiki/XCOPY
4. Robocopy命令:https://en.wikipedia.org/wiki/Robocopy
5. EazyCopy:https://github.com/Cinchoo/ChoEazyCopy
6. RichCopy:https://en.wikipedia.org/wiki/RichCopy
7. UltraCopier:https://ultracopier.first-world.info/
9. ExtremeCopy:http://www.easersoft.com/product.html
10. Windows常用文件管理器的比较:https://en.wikipedia.org/wiki/Comparison_of_file_managers
11. XYplorer:https://www.xyplorer.com/
12. Directory Opus 12: https://www.gpsoft.com.au/DScripts/download.asp
13. Explorer++:https://explorerplusplus.com/
14. Rsync:https://rsync.samba.org/
15. Rclone:https://rclone.org/
16. NasTool,线下IDC使用本地磁盘时的数据迁移:https://help.aliyun.com/document_detail/93097.html