Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么在复制大量小文件时,NTFS文件系统比EXT3文件系统慢?_Linux_Windows_Filesystems_Ntfs_Ext3 - Fatal编程技术网

Linux 为什么在复制大量小文件时,NTFS文件系统比EXT3文件系统慢?

Linux 为什么在复制大量小文件时,NTFS文件系统比EXT3文件系统慢?,linux,windows,filesystems,ntfs,ext3,Linux,Windows,Filesystems,Ntfs,Ext3,我已运行以下测试,我已使用此批创建了一个包含15000个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字节

我已运行以下测试,我已使用此批创建了一个包含15000个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/s。我花了几秒钟的时间来拷贝7兆字节。请注意,这是非常慢的

我也尝试过同样的方法,一个文件夹的单个文件大小为50MB,传输速率为1219512195字节/秒。(是的GB/s)瞬时

为什么在windows文件系统上复制大量文件会花费这么多时间-资源?

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

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

还请注意以下事项:

  • 没有杀毒软件
  • 我在多台windows计算机(始终是ntfs)上测试过这种行为,我总能得到类似的结果(传输速率低于1MB/s,平均7-8秒,拷贝7 MB字节)
  • 我在多个LinuxExt3系统上进行了测试,拷贝量始终是即时的(15000个文件,400字节)
  • 问题在于理解是什么使得windows文件系统复制大量文件的速度比linux文件系统慢
是,如果我通过windows资源管理器或使用copy CMD复制过去,结果是相同的。我怀疑这不是因为复制了大量性能不好的文件,而是因为所有这些文件都在一个目录中—NTFS上的一个目录中有15000个文件会变慢(实际上,对于大多数文件系统来说,这是相当多的,但有些文件系统处理起来比其他文件系统更好)。