微软计划于 2024 年底发布 Windows Server 2025。在发布下一版基于服务器的操作系统的同时,微软还将推出新版Diskspd存储测量和性能工具,为系统管理员检查 Windows Server 2025 的性能提供更好的方法。
在一篇博客文章中,微软说明了对 Diskspd 进行修改的原因:
Diskspd 正在更新,以处理现代工作负载和 NVMe 等硬件。我们在 Windows Server 2025 中的存储堆栈也进行了更新,以充分利用 NVMe 存储的进步。在对这些功能的测试过程中,我们改进了延迟测量方法,发现在使用 Windows Server 2025 时,我们现在已经达到了磁盘设备限制!
这两项新改进之一被称为 "分批完成"(Batched Completions)。微软表示,在过去,Diskspd 会获得所需的 I/O 数量,但随后会一次获得并记录一个 I/O,然后在进入下一个 I/O 之前重新发出该 I/O。微软表示,这就好比去信箱取信,从信箱中取出一封邮件,然后回到家中,再去信箱取另一封邮件。
当然,大多数人都是一次性从邮箱中取出所有邮件,而现在有了分批完成功能,Diskspd 将获得所有已完成的 I/O,并记录所有已完成的 I/O。微软表示:
这反映了 I/O 完成的实际时间,防止 Diskspd 夸大存储延迟。
另一项重大改进被称为 "侧面查看"(Look-a-sides)。微软展示了 Diskspd 过去是如何处理某种测量场景的:
为了理解这一挑战,请想象有 16 个 I/O 发出(T0),其中 2 个 I/O 很快完成。接下来,Diskspd 接收到 I/O 1 和 2(T1 使用分批完成)。当 Diskspd 接收到第一组完成的 I/O 时,又有更多的 I/O (3 和 4)完成。但 Diskspd 并没有将 I/O 3 和 4 记录为已完成。但 Diskspd 并没有将 I/O 3 和 4 记录为已完成,而是继续其目标,重新发出 I/O 1 和 2。这种接收和记录已完成 I/O 的延迟不必要地增加了 Diskspd 测得的延迟时间。飞行中的 I/O 越多(-o 参数值越大),这个问题就越突出。
查找侧将尝试消除获取和记录已完成 I/O 的延迟:
现在,Diskspd 将接收 I/O 1 和 2 (T1),并开始重发 I/O 1 (T2)。Diskspd 会尽早查看完成队列,看是否有更多 I/O 可以接收,并记录为已完成 (T3)。
系统管理员现在就可以下载新版 Diskspd 和预览版 Windows Server 2025:
https://github.com/microsoft/diskspd/
https://www.microsoft.com/zh-cn/evalcenter/download-windows-server-2025