我已经运行了以下测试,我使用这个批处理创建了一个包含15,000个400个字节文件的文件夹:
@ECHO off
SET times=15000
FOR /L %%i IN (1,1,%times%) DO (
fsutil file createnew filename%%i.txt 400
)然后使用以下命令将其复制到Windows计算机上:
robocopy LargeNumberOfFiles\ LargeNumberOfFiles2\在它完成后,我可以看到传输速率是915810字节/秒,小于1MB/S,我花了几秒钟复制7 MBytes,请注意,这是非常慢的。
我对一个文件只有50兆字节的文件夹进行了同样的尝试,传输速率为1219512195字节/秒。(是的,GB/s)瞬间。
请注意,我曾尝试在运行在虚拟机(vmware player)的同一台计算机上的linux系统上使用ext3文件系统。
我使用cp命令,副本是即时的!
还请注意以下各点:
发布于 2012-12-12 15:00:31
您的15,000份文件至少需要60,000份HD交易才能完成:
您可能也在使用SATA驱动器(只是猜测),它不支持命令队列,这意味着驱动器将必须逐个遍历所有60000个操作。高端SCSI驱动器和阵列将通过在类似位置排队执行几个操作来提高性能。
您的单个文件副本至少需要4次操作(尽管可能还需要几次操作,这取决于);与以前一样。如果读写操作中有文件片段,则可能超过4个。
吞吐量不仅以每秒字节为单位,而且还以IOps (实质上是每秒的操作)来衡量。你正受到这两种中的后一种的限制。
发布于 2012-12-11 18:12:29
最可能的原因是您的Windows系统在复制和粘贴时正在创建缩略图预览。而是使用CLI工具,比如机器人复制。
https://serverfault.com/questions/457102
复制相似问题