你在同一时间复制很多东西,计算机性能就会下降。例如,尝试同时复制 10 多个 ISO 映像。
网络中有 QoS,CPU 中有关联性和优先级,但是硬盘驱动器有什么可以限制 I/O 队列的吗?虚拟文件系统?操作系统驱动程序?
当然,您可以使用例如
- 制作要复制的文件列表并运行一个一个复制文件的脚本
- 使用 TeraCopy 等软件
欢迎使用 Windows 和 GNU/Linux 解决方案。
你在同一时间复制很多东西,计算机性能就会下降。例如,尝试同时复制 10 多个 ISO 映像。
网络中有 QoS,CPU 中有关联性和优先级,但是硬盘驱动器有什么可以限制 I/O 队列的吗?虚拟文件系统?操作系统驱动程序?
当然,您可以使用例如
欢迎使用 Windows 和 GNU/Linux 解决方案。
对于 Linux 有ionice,Windows 有很长一段时间以来就有IO 优先级,但至少从 Vista 开始,它在工作站的健全实现中也完全可用。
在较低级别上,Linux(我假设是 Windows,和 *BSD,以及其他所有正在认真使用的东西)有一个 IO 调度程序,它试图平衡每个设备的最佳整体利用率和为每个进程提供良好的服务。Linux 当前的默认调度程序称为Completely Fair Queuing,当前普遍可用的替代方案称为Anticipatory和Deadline。
在一些相关的说明中,程序iotop对于监视和检查在高 IO 负载下系统中发生的事情很有用。
ionice 仅适用于 CFQ 调度程序,这通常是默认设置。如果您正在使用另一个调度程序,或者如果 ionice 没有为您完成这项工作,您可能希望定期暂停执行以让您的 io 缓冲区刷新。这是我们为此使用的脚本:
有趣的是,最近有关于在 LKML 上为块设备实现 QoS 的讨论。
曾经优秀的 LWN.net 上有一篇很好的文章:块设备生物节流支持 [V3]
在 Linux ionice 上,让您优先考虑 IO,但有些不足。dm-ioband应该更强大;但我仍然对这些文档感到不舒服....