为什么从 USB 2.0 驱动器复制时只能获得一半的吞吐量?

为什么从 USB 2.0 驱动器复制时只能获得一半的吞吐量?

使用命令时:

`tar cvf - ./Lacie/ > ~/Lacie.tar`

根据活动监视器,我得到:

Data written/sec: 32.1 MB/s
Data written/sec: 31.5 MB/s (peak 47.9 MB/s)
CPU usage: 5.7%

但是,USB 2.0 支持 60 MB/s。为什么我只能获得其中的一半?如何提高吞吐量?

答案1

USB 2.0 的文件传输速度根本达不到宣传的吞吐量。例如这里

实际数据吞吐量通常远低于宣传的最大 USB 规格,并且受许多变量的影响,包括开销。实际上,USB 2.0 的实际吞吐量通常高达 35 - 40MB/秒 [...]

本文链接至维基百科,数据更糟糕:

[...] 受到当前所连接 USB 设备的数量和类型以及 USB 接口的上限限制(实际上 USB 2.0 的速度约为 30 MB/s [...])

根据 CNet 的常规测试,典型的高速 USB 硬盘的写入速度约为 25-30 MB/s,读取速度为 30-42 MB/s。这占可用总带宽的 70%。

差异包括 USB 协议开销,当然还有共享总可用带宽的其他连接设备。您可能有多个通过 USB 连接的外围设备(甚至是内部设备,例如 Macbook 中的触控板或键盘)。您已经非常接近这些值(我的经验也支持这些值),因此您可能不应该再浪费时间,而应该开始复制。

请注意,这tar对您来说毫无用处(除非您的内置磁盘比 USB 2.0 还要慢),因为通过 USB 读取和传输的数据与不使用 USB 时的数据相同。此技巧通常仅在通过 SSH 传输到另一台计算机时才有用,此时网络速度慢是瓶颈。


最快的传输数据的最佳方式是使用快速接口连接磁盘,例如 FireWire 800、eSATA(在 Mac 上并不常见)或千兆以太网。不要使用 USB 2.0。

相关内容