传输大量文件时 HDD 传输速度降低

传输大量文件时 HDD 传输速度降低

当我拖放/复制大量大文件和小文件时,与逐个传输文件时的速度相比,传输速度会降低,这是机械硬盘的常见问题吗?使用 SSD 可以提高性能吗?

答案1

您的意思是以某种方式启动多个同时复制?如果是这样,那么完全有理由认为它的效率应该低于串行复制。

首先,如果你假设磁盘速度无限快,那么多个复制进程之间的上下文切换将产生系统开销。在极端情况下,你可能会启动足够多的复制进程,以至于它们无法同时全部放入核心中,然后你就必须将虚拟内存交换添加到系统开销中。

但磁盘的速度不是无限快的,收集多个进程请求的多个文件可能需要驱动器寻道,这是机械驱动器上最慢的操作。内核确实会尝试重新排序驱动器访问以尽量减少所需的磁头寻道,但这很难实现最佳效果,因为系统无法预测将来会请求什么。

最后,系统必须保护某些数据结构(例如空闲块列表)不被多个进程同时操作,方法是在 P1 分配空间时阻止进程 P2、P3、P4……Pn。

由于您的问题含糊不清,另一个答案是,如果您在 nautilus 中选择一堆文件并通过一次拖放将它们复制到其他地方,nautilus 只会创建一个进程来按顺序生成副本。在这种情况下,更快的驱动器确实会更快;那么问题就变成了您能承受多快的速度?

答案2

您的文件可能位于磁盘的不同部分,导致它必须搜索磁盘表面上的各个柱面和磁道才能找到数据。在这种情况下,SSD 可以消除物理搜索,从而提高性能。但是,当您复制大量文件时,操作系统也可能将复制过程安排为优先级较低的过程,特别是当您正在运行其他 I/O 密集型进程时。

相关内容