将此归为我只是好奇。
我有一台旧电脑(Dell gx280),上面连接着一个外部 USB 2.0 硬盘。我试图通过千兆网络连接将文件复制到另一台电脑,但传输速度仅为每秒约 2.5 兆字节。这只使用了源电脑和目标电脑中千兆网卡的一小部分。我发现源电脑上的 CPU 因某个应用程序而达到最大容量。一旦我退出该应用程序,CPU 使用率就会恢复到几乎为零。然后复制作业跃升至每秒 14 兆字节,并使用了 30-35% 的千兆连接。
NIC 和 USB 端口位于主板上。CPU 使用率如何减慢整个过程?它是否影响网卡、USB 端口或两者?
答案1
USB 更像是一个由 CPU 驱动的接口,而不是 NIC 或硬盘。主机必须协调并参与大多数 USB 事务。Firewire 能够在没有主机协助的情况下移动数据,这是它优于 USB 的一个优势。
有较新的标准(例如 USB OTG)可以提供这种功能,但我不确定它是否有助于提高 PC 到外围设备的传输速度(如果我没记错的话,它意味着允许两个 USB 外围设备连接,中间不需要 PC)。如果您在标准 USB 2.0 芯片组上使用标准 USB 2.0 驱动器,那么它就不是一个因素。
如果您有防病毒软件、DRM 或加密软件拦截每个读写操作,这也可能发挥作用。
答案2
您在 PC2 或 PC1(Dell gx280)上的哪个位置执行了复制?当您尝试通过网络复制文件时,您的 PC 需要获取文件并将其分解为 TCP 数据包,然后才能通过网络发送。这需要使用 CPU。因此,如果您的 CPU 被占用来执行其他优先级高于复制的进程(其优先级可能低于您的应用程序),那么您的 NIC 将不会接收数据包以通过网络发送它。