随着文件大小的增加,将大文件复制到USB驱动器的速率会降低


2

我使用1.5TB Seagate USB驱动器,格式化为NTFS,连接到Linux计算机。

我正在将70GB文件复制到驱动器。

我注意到副本的文件大小已开始以较低的速率增加。

最初,该文件以大约19MB / s的速度增长

现在,目标文件大小为60GB,增长率约为5MB / s

有什么因素可以促成这一点?

Answers:


4

我的猜测是缓存(或缓冲区,如果你愿意)。

第一块数据被非常快速地写入缓存(以数字方式写入磁盘)。缓存填满,因此传输速率下降到磁盘的实际传输速率(因为数据从缓存空间写入磁盘在缓存中可用)

您看到的速度逐渐下降可能是整个转移的平均速度。传输越长,传输百分比越高,实际速度越低,平均传输速率越低。

他们说一张图片描绘了1000个单词,所以这里有一个。

转移图示例

蓝线是实际转移率,红色是自开始以来的平均值。(这些只是我从头脑中制作的示例数字)。


0

哼,很难说。

对源和/或目标的其他操作,在一个或另一个上的碎片磁盘空间。它对每个副本的行为方式是否完全相同?


0

这是我所看到的一个问题,所有新的绿色和低功率驱动器都喜欢经常停下头。


0

除了上述答案中提到的明显缓存方面,Linux处理USB存储设备的方式与本地存储设备不同。

当您将数据传输到“经典”磁盘(通过SATA内部连接或通过eSATA外部连接)时,Linux内核使用DMA模式,这意味着整个传输直接从RAM到磁盘控制器完成,不涉及CPU。

这就是SATA / eSATA传输速度快的原因。

但是,当您通过USB连接相同的磁盘时,每千字节的数据将被拆分为64字节的数据包,这些数据包将在您的计算机和USB磁盘盒中的USB控制器之间进行交换。这必须使用CPU完成,因此不能在DMA模式下完成。

这就是为什么USB速度较慢的原因。


您还应该意识到,Linux在许多方面(不仅是磁盘/文件系统相关)和许多层上缓存数据。有超过100种不同的缓存。

因此,您尝试发送到USB磁盘的较大文件,在此过程中填充的缓存越多。这正是转移非线性减速的原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.