如果我将大量数据从一个驱动器复制到另一个(物理)驱动器,整个系统就会运行缓慢。
我在 Intel Core 2 Duo 3 GHz 上使用 Windows 7 64 位版本。
情况如下:
- 两个 SATA 磁盘之间的复制速度非常快。
- 资源监视器显示读取速度为 80MB/s,写入速度为 70MB/s,总速度为 150MB/s
- 总CPU负载约为3%
- 剩余大量 (>2GB) 可用物理 RAM
- 所有分区都有足够的 (>10gb, >10%) 可用空间,并且碎片化程度较低
- 防病毒软件未激活
这就是问题所在:无论我在复制过程中想做什么,都要花很长时间。即使是不需要大量磁盘访问的任务(因为它们应该只从 RAM 运行),也非常慢。我一停止复制过程,所有未完成的任务就会立即完成。例如,尝试打开新的浏览器窗口或资源管理器窗口将不起作用。如果停止复制,则会立即弹出 5 个资源管理器窗口。
我的问题是:为什么?如果 CPU 和内存闲置,那么什么资源会被耗尽?我需要升级计算机硬件的哪些部分才能获得更好的性能? 还可以阅读 Psycogeek 的评论以了解这方面的更多问题。
如果您的答案是,所有内容都需要 HDD 访问,而此类活动会阻止它,那么我的问题是:有没有办法在您的系统上复制某些内容,而不会在完成之前使其无法使用?(如果需要复制 >500g,则可能需要几个小时)。
答案1
如果你使用多个资源相同的硬盘,那么这是正常现象。硬盘是大型机械设备,擅长一件事 - 一次只做一件事。您一次只能读取/写入一个扇区,因此尝试同时使用硬盘通常会导致鞭笞。这不是硬件按设计运行以外的任何副作用。
如果您同时在机械硬盘上执行多项操作,则一次执行一项操作可能会获得更好的结果。如果您谈论的是文件传输,请考虑将 Explorer 文件复制处理程序替换为支持传输排队的其他程序(例如泰拉复制,如果您暂时需要快速磁盘访问,它还允许您暂停传输)。
你也可以帮助通过使用固态硬盘来减轻这些影响,但这并不能保证——它只是因为随机访问时间大大减少而有所帮助。使用 SSD 仍然可能会出现抖动,而且 SSD 仍然有相同的限制——它一次只能读取或写入单个扇区。
如果你不想使用 SSD,可以考虑使用 RAM 磁盘,在内存中执行任何数据处理,添加额外的驱动器(而不是分区)为每个任务创建一个新分区,或者在非操作系统驱动器上执行 I/O 密集型任务。
答案2
有多种复制方式,但可以被限制。
“FastCopy” 可用于替代系统复制操作,并可将其设置为限制其自身操作。可以“全局”设置限制,也可以在复制时手动设置。反过来 :-) 允许 fastcopy 全速运行,它可以更快地复制,但会使系统速度更慢,使用整个处理器核心并大量使用内存进行复制。它允许两者之一,但我尚未在 Win7 中测试过它。
“TerraCopy” 是系统复制的流行替代品,允许暂停复制操作。使用它,您可以开始其他操作,然后取消暂停继续。Terracopy 已知可以在 win7 中运行。
我已经使用上述两种方法进行复制,但我避免让它接管所有操作,它们每个都可以具有与系统完全相同的功能。所以我确保原始系统副本仍然可用。
答案3
我遇到了一个非常类似的问题:通过 robocopy 将文件从 HDD 复制到慢速网络(仅约 MBit/s)共享。整台电脑都无法使用。操作系统(Win10)位于 SSD 上!甚至浏览(Firefox 安装在 OS 分区 C:)也非常慢,因为打开网站会产生 IO。
通过 ProcessHackerhttps://processhacker.sourceforge.io/我降低了 IO 优先级。因此 PC 仍然可用,并且到目前为止复制速度似乎没有降低。
答案4
您是否在运行启用了访问时扫描的防病毒软件?如果是,请在复制大文件时禁用访问时扫描。完成后再将其重新打开。
我曾多次看到按访问扫描出现非常严重的性能问题。这基本上是因为磁盘最终要等待 AV 引擎,而这可能需要一段时间才能扫描大文件。