为什么将文件从 USB 硬盘复制到我的硬盘时,吞吐量仅为 24 MB/s?

为什么将文件从 USB 硬盘复制到我的硬盘时,吞吐量仅为 24 MB/s?

我知道这是正常的,不是一个故障,但为什么在使用全新的 7200 RPM 硬盘和快速地USB 外置驱动器?

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

答案1

USB 2.0、高速 USB 常见问题解答

当 USB 2.0 引入高速 USB 模式时,它将带宽提升至480兆位/秒或者60兆字节/秒...对于许多 USB 存储设备而言,以最快速度或 16 倍速刻录 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 总线上是否有其他活动。即使是鼠标也会占用大量可用带宽。

答案2

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

因此,如果您拥有带宽,并且除了读取连续扇区而不进行寻道之外什么也不做,那么您将获得比所看到的速度快五倍的速度。

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

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

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

此外,每个命令都必须通过 USB 传输。虽然开销不大,但它是一种“愚蠢”的大容量存储设备,因此 Windows 会说:“嘿,给我扇区 4923847”,然后驱动器就会执行。然后 Windows 会请求或写入另一个扇区。使用命令排队至少可以达到最佳效率,但 USB 接口传输的不仅仅是您正在复制的原始数据。

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

所有这些因素结合起来,本质上就是在说:“哇,你获得了 24 MB/s?这实际上相当不错!”

答案3

对于单 SATA -> 单 SATA 吞吐量来说,24 MBytes/sec 相当合理,无论接口是什么。特别是当有很多小文件(而不是一个大文件)、磁盘上有碎片等时。

您可以使用 IOmeter 测试连续读写的最大持续读写速度。您必须进行完整的碎片整理或针对干净格式化的分区进行操作才能获得准确的测试。

相关内容