为什么我的闪存驱动器在复制时速度变慢?

Lan*_*nes 31 file-transfer usb-flash-drive

复制几分钟后,它只会变得越来越慢。为什么?

例如,它以 20 MByte/s 开始,当它结束时,它是 @10 MByte/s。

各种文件,大的,小的等。

更新:问题是关于各种操作系统的,所以这是一个“一般问题”

ta.*_*.is 28

此行为并非特定于您的闪存驱动器,您也可以在硬盘驱动器上看到这一点。它与大多数操作系统和磁盘用来加速小写的缓存机制有关。

您看到的 20mb/s 是写入磁盘缓存的数据(通常速度快但内存小)。一旦此缓存已满,就必须将其刷新到磁盘 - 现在您正受到较慢的磁盘的瓶颈。

示例 1:当您有一个带有大缓存的控制器(如好的 RAID5 控制器)时,效果非常明显,其中大约 500mb 的数据可以在必须刷新到磁盘之前快速缓存。

示例 2:如果在文件复制“完成”的同时拔出闪存驱动器,您可以看到缓存正在运行。此时,您的文件在磁盘和缓存之间拆分 - 因此就操作系统而言,副本已“完成”,但磁盘控制器仍需要将缓存中剩余的内容写入磁盘。如果您将闪存驱动器放回原处并检查该文件,您会发现它并不完整。

免责声明:如果您的操作系统/磁盘上没有启用写入缓存,这些示例将不起作用。

此外,如果不是磁盘缓存在起作用,那么您所看到的很可能是碎片的影响。随着磁盘越来越满,可用的连续可用空间越来越少,文件系统必须更加努力地找到放置文件的位置。