在复制大量小文件时,为什么NTFS文件系统与EXT3文件系统相比如此之慢?

Arn*_*501 9 linux windows filesystems ntfs ext3

我运行以下测试我使用此批处理创建了一个包含15,000个400字节文件的文件夹:

@ECHO off
SET times=15000

FOR /L %%i IN (1,1,%times%) DO (
    fsutil file createnew filename%%i.txt 400
)
Run Code Online (Sandbox Code Playgroud)

然后我使用此命令在我的Windows计算机上复制它:

robocopy LargeNumberOfFiles\ LargeNumberOfFiles2\
Run Code Online (Sandbox Code Playgroud)

完成后我可以看到传输速率为915810字节/秒,小于1 MB/s.我花了几秒钟复制7 MBytes请注意,这是非常慢的.

我尝试使用单个文件为50 MB的文件夹,传输速率为1219512195 Bytes/sec.(是的GB/s)瞬间.

为什么复制大量文件需要花费很多时间 - 在Windows文件系统上重新编写资源?

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

我使用cp命令,副本是即时的!

另请注意以下事项:

  • 没有防病毒软件
  • 我已经在多台Windows计算机上测试了这种行为(总是ntfs)我总是得到可比较的结果(传输速率低于1MB/s平均7-8秒复制7 MB)
  • 我已经在多个linux ext3系统上进行了测试,副本总是瞬间完成(1500字节的15000个文件)
  • 问题是如何理解是什么让windows文件系统复制大量文件比例如linux的文件慢.