如何优化 Windows 磁盘 I/O 以实现高延迟吞吐量?

如何优化 Windows 磁盘 I/O 以实现高延迟吞吐量?

假设有 25 个进程,每个进程都想读取和索引一个大文件(例如 1GB)。硬盘驱动器的吞吐量可能达到约 100MB/秒,但这些进程之间移动所涉及的磁头移动和旋转延迟非常大,因此吞吐量可能会降低到 5MB/秒,或者仅为传统驱动器吞吐量的 5%。

如果硬盘要读取大量数据(比如 32MB)或者在进入下一个过程之前长时间(比如 200ms)读取任何数据,文件 IO 可能会以延迟为代价接近硬盘的全部吞吐量。

当延迟比吞吐量更重要时,Windows 是否有这样的功能来实现这一目标?

在此处输入图片描述

答案1

这就是NCQ 协议适用于。支持 NCQ 的驱动器会查看所有传入的命令并对其进行重新排序,以便更有效地处理这些命令(本质上,重新排序命令就是你要问的)。

话虽如此,我在你的示例中看到磁盘队列深度为 27,因此 NCQ 甚至无法提供帮助。这是 RAID 的问题(可能与更快的物理存储相结合)。

那里可以在 Windows 中调整的存储参数,特别是与缓存行为相关的参数,但这对您的情况帮助不大。

相关内容