我有一堆总大小为 6Gb 的图像,但每个图像都相对较小。我试图通过 LAN 复制这些图像,复制速度约为 1 MB/s。
现在它比互联网还慢。
我的局域网速度为千兆位。看起来这种情况只发生在大量小文件的情况下。当我复制一个大文件时,速度超过 100 MB/s。
是否有可能使 Samba 更快地处理一堆小文件?
答案1
您无法让 Samba 更快地处理小文件,因为 Samba 不是问题所在。
传输大量小文件的最佳方法是先将它们压缩成一个存档,然后再传输整个存档。您甚至会发现压缩>传输>提取的整个过程比传输所有文件更快。
原因有两个方面:开销和硬盘操作。与传输单个文件相比,传输多个文件时的网络开销更大,因为每个文件都具有许多属性。而且,硬盘需要更努力地分配空间以从其缓冲区写入每个数据包。如果您使用的是机械驱动器,那么您还必须考虑增加的寻道时间,以及硬盘将数据放入扇区的操作。SSD 不会受到太大影响。
在将文件从 HDD 传输到 HDD 或从 USB 驱动器传输到 HDD 时,您会发现同样的问题。这是许多单个文件的开销。