为什么在将文件从 USB 硬盘驱动器复制到我的硬盘驱动器时,我只能获得 24 MB/s 的吞吐量?

4 hard-drive

我知道这是正常现象而不是故障,但是为什么在使用全新的 7200 RPM 硬盘驱动器和快速USB 外置驱动器时吞吐量如此之低?

我知道有一些“开销”,但这是什么开销?为什么这么慢?

小智 16

USB 2.0 开始,高速 USB 常见问题解答

当 USB 2.0 引入高速 USB 模式时,它将带宽提升到480Mbit/s60Mbyte/s
...
对于大量的 USB 存储,以最快的速度或 16x 刻录 DVD-R 需要 21MByte/s 或 169Mbit/s。这相当于 USB 2.0 整体速度的 35%。然而,硬盘需要大量的带宽,USB 2.0 无法满足;我们已经看到 USB 2.0 硬盘在绝对最佳情况下保持 36 到 40MBbyte/s。USB 闪存驱动器也达到了 33MBytes/s,但 NAND 本身似乎存在一些限制,因此您不应期望它们的速度在未来一两年内飙升。对于大多数消费者来说,带宽不足应该没有问题。

对于速度,请注意兆位和兆字节之间的区别。

如上所述,吞吐量将取决于您要复制的文件和文件夹结构的大小。如果有很多文件,或者移动文件的过程正在做一些额外的处理,例如 ZIP,吞吐量会低得多。

如果您使用 Windows 资源管理器复制单个大文件(超过 1 GB),您应该会看到速度接近 40 Mbytes/s,但由于 USB 协议开销,它可能不会超过该速度。

如前所述,检查 USB 总线上没有其他活动。即使是鼠标也会占用大量可用带宽。


Ada*_*vis 6

典型的 7200 RPM SATA 驱动器的最大传输速率为 125 MB/s(例如,Seagate Barracuda 7200.12)。

因此,如果您有足够的带宽,并且除了读取连续扇区而不进行搜索之外什么都不做,您的速度将比所看到的快五倍。

但是,即使在单个文件中,数据也不是连续的,多个文件可能位于多个块中。此外,每次文件写入都需要更改目录表和/或 FAT。无论您是因为文件不连续而进行搜索,还是因为必须写入文件或目录表而进行搜索,您都会在搜索中消耗时间。

平均寻道时间约为 8 毫秒,因此每次寻道都会消耗大量时间。

这不仅在目标驱动器上发生,而且源硬盘驱动器还必须四处寻找每个文件和目录条目的点点滴滴。由于更大的碎片(文件被分成更多的部分),源头上的情况可能更糟。

此外,每个命令都必须通过 USB。这不是大量的开销,但它是一个“愚蠢的”大容量存储设备,因此 Windows 说,“嘿,给我扇区 4923847”并且驱动器符合要求。然后 Windows 请求或写入另一个扇区。通过命令队列,它至少是尽可能高效,但 USB 接口传输的不仅仅是您正在复制的原始数据。

USB 的最高速度为 480 Mbits/s,但实际情况是,如果您从该接口获得 48 MBytes/s 的速度,您就做得很好,而且它可能会与速度较慢的鼠标、键盘和其他 USB 外围设备竞争。根据主机和集线器的设置方式以及它们的价格,您可能会因低速外围设备占用时隙而损失非常大的 USB 带宽。

所有这些因素结合起来,本质上说,“哇,你获得了 24 MB/s?这实际上非常好!”