9

我已经运行了以下测试,我使用此批次创建了一个包含 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 字节/秒,小于 1 MB/秒。我花了几秒钟来复制 7 MBytes 请注意,这非常慢。

我已经尝试过使用单个文件为 50 MB 的文件夹,传输速率为 1219512195 字节/秒。(是的 GB/s)瞬时。

为什么复制大量文件会占用 Windows 文件系统上的大量时间资源?

请注意,我尝试在具有 ext3 文件系统的虚拟机(vmware 播放器)中的同一台计算机上运行的 linux 系统上执行相同的操作。

我使用 cp 命令,复制是瞬时的!

另请注意以下事项:

  • 没有杀毒软件
  • 我已经在多台 Windows 计算机(总是 ntfs)上测试了这种行为,我总是得到可比较的结果(传输速率低于 1MB/s,平均 7-8 秒复制 7 MBytes)
  • 我已经在多个 linux ext3 系统上进行了测试,该副本始终是即时的(15000 个 400 字节的文件)
  • 问题是要了解是什么让 Windows 文件系统复制大量文件的速度比 Linux 文件系统慢。
4

0 回答 0