磁盘速度
DiskSpd 是 Microsoft Windows、Windows Server 和云服务器基础设施工程团队开发的存储性能工具。请访问 https://github.com/Microsoft/diskspd/wiki 以获取更新的文档。
除了工具本身之外,该存储库还托管利用 DiskSpd 的测量框架。最初的示例是 VM Fleet,用于具有存储空间直通的 Windows Server 超融合环境。
该项目采用了微软开源行为准则。有关详细信息,请参阅行为准则常见问题解答或联系 [email protected] 提出任何其他问题或意见。
发布
版本页面包括 DiskSpd 工具最新版本的预编译二进制文件 (ZIP) 和源代码。 DiskSpd 的最新更新始终可以从 https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip(又名 https://aka.ms/getdiskspd)下载。
什么是新的?
磁盘驱动器
DISKSPD 2.2 2024 年 6 月 3 日
注意:对异步 IO 循环的更改将需要对队列深度大于 1 的结果重新设置基线。新设计更积极地排空完成队列,缩短影响延迟测量的延迟,尤其是针对更高队列深度的更快存储。延迟测量以非常小的速率成本得到改进,并且在由于批量出队而未使用延迟测量( -D
或-L
)时提高速率。
较小的 IO 尺寸变化最大。
- 新增内容:处理器拓扑报告(XML 和文本输出)中添加了插槽、NUMA、核心和电源效率等级(大/小核心)
- 当存在 > 1 时,拓扑元素仅显示在文本结果中(例如多插座系统)
- CPU 编号仍然是相对于组的,新的核心编号也是如此
- 最高能效等级标有
P
后缀(通常为1P
v. 0
) - 注意:效率等级可能会产生重大影响;在异构系统上工作必须了解核心属性与线程关联规则的结合(请参阅
-a
和-n
)
- 新功能:有功功率方案报告
- 新功能:基础目标偏移开关现在允许范围指定:
-Bbase[:length]
;替换-B
和-f
- 运行后延迟直方图处理现在明显更快
- 详细输出更加一致;包括实际的预热、测量和冷却间隔与预期
二进制版本支持低至 Windows 8 和 Windows Server 2012;现在使用通用 CRT。
DISKSPD 2.1 2021 年 7 月 1 日
- 新的
-gi
形式允许以 IOPS 为单位指定吞吐量限制(每个指定的块大小) - 新的
-rs
指定混合随机/顺序操作(pct random);游程长度的几何分布 - 新的
-rd
用于指定跨目标的非均匀 IO 分布 - 新的
-Rp
以指定的配置文件输出形式显示指定的参数集;使用 -X XML 配置文件和传统命令行 - XML 结果/配置文件现在缩进以便于查看
- 文本结果输出更新
- 现在以尺寸单位(K/M/G,现在是 TiB)显示精确到两位小数的值
- 除非指定,否则不再显示线程步幅
- -F/-O 显示线程池参数
- 现在可以更通用地构建 XML 配置文件
- XML 配置文件可以用模板化目标名称(*1、*2)来表示,并按命令行调用的顺序进行替换
- 命令行现在允许使用 -X 旁边的选项:-v、-z、-R 和 -W/-d/-C 以及模板目标规格
DISKSPD 2.0.21a 2018 年 9 月 21 日
- 添加了对内存映射 I/O 的支持:
- 新的
-Sm
选项可启用内存映射 I/O - 新的
-N
选项用于指定内存映射 I/O 的刷新选项
- 添加了对提供 Windows 事件跟踪 (ETW) 事件的支持
- 包含 Windows 性能记录器 (WPR) 配置文件以启用 ETW 跟踪
- 将系统信息添加到 ResultParser 输出
DISKSPD 2.0.20a 2/28/2018
- 可能需要重新确定结果基线的更改:
- 新的随机数生成器可能会显示出可观察到的成本降低
- 使用
-Z
选项切换到 512 字节对齐缓冲区以提高性能
- 新的
-O
选项用于指定每个线程的未完成 IO 请求数 - 新的
-Zr
选项用于写入缓冲区内容的每个 IO 随机化 - XML:添加新的
元素以支持目标权重方案 - 从 IOPS 数据捕获的增强统计数据
- 添加了对使用内置 XSD 验证 XML 配置文件的支持
- 添加了对处理 RAW 卷的支持
- 更新了 CPU 统计信息以在 > 64 核系统上运行
- 更新了 CPU 统计数据的计算和准确性
- 重新启用对 ETW 统计数据的支持
DISKSPD 2.0.18a 2016 年 5 月 31 日
- 更新
/?
使用-Sh
示例 v. 不推荐使用-h
- 修复 GPT 分区介质上卷的操作 (:)
- 修复 IO 优先级提示以正确堆栈对齐(如果不是 8 字节,将会失败)
- 使用 iB 表示法来阐明文本结果输出以 2^n 为单位 (KiB/MiB/GiB)
DISKSPD 2.0.17a 5/01/2016
-
-S
进行扩展以控制独立于操作系统/软件缓存的直写。除此之外,这允许指定缓冲直写( -Sbw
)。 - XML:添加新的
元素来指定直写 - XML:
不再发出(但仍会解析),支持
和
- 文本输出:操作系统/软件缓存和直写状态现在单独记录(相邻行)
- 延迟直方图现在在文本和 XML 输出中报告为九个九(十亿分之一)
- 添加了无法打开写入内容源文件(
-Z,
)的错误消息
虚拟机舰队
VM Fleet 是一个性能表征和分析框架,用于探索具有 Storage Spaces Direct 的 Windows Server 超融合环境的存储功能。
虚拟机舰队 2.1.0.0 4/3/2024
- 支持Arc VM管理(仅适用于Arc管理的集群)
-
Set-FleetRunProfileScript
- 根据定义的工作负载配置文件之一生成自由运行脚本 Watch-FleetCPU
- 新支持监控来宾 VCPU 利用率(-Guest);可以处理数据中断- 修复:性能计数器处理现在可以管理间歇性数据丢失(根据传统的 relog.exe)
- 修复:运行中虚拟机运行状况检查现在可以处理许多虚拟机验证所需运行时间比预期运行时间更长的可能性;提前退出以避免错误失败
- 修复:更改缓存行为时忽略缓存层需要重新启动的指示;避免假故障
虚拟机舰队 2.0.2.2 12/1/2021
- 修复 New-Fleet 期间由 2.0.2.1 工作引起的集群远程处理问题
- 在 New-Fleet 中使用带时间戳的日志记录,简化默认输出并对其进行去色处理
虚拟机舰队 2.0.2.1 11/9/2021
- 修复 Move-Fleet 和 Get-FleetDataDiskEstimate 中的集群远程处理问题
- 修复 Start-FleetSweep 的计时问题;始终从舰队暂停开始以避免触发自由运行
- 使用唯一性来保证 Start-FleetSweep 运行配置文件以防重复
VM 舰队 2.0.2 11/2/2021
- Windows Server 2019/RS5 主机操作现已确认并受支持
- HDD 容量系统的读取缓存预热现在应该更快
默认情况下, Set-FleetPause
将在完成之前等待 VM 响应(请参阅 -Timeout)
一些小修复,包括:
- 在队列虚拟机中禁用 Windows 恢复控制台
- 修复:
Show-Fleet
IOPS 视图现在聚合所有 VM 磁盘设备 - 修复:自动清理泄漏/冲突的数据收集器和 blg
VM 舰队 2.0 2021 年 9 月 22 日
- 主要发布并重写为一流的 Powershell 模块
- 原始的基于脚本的 VM Fleet 在 Frameworks/VMFleet1.0 中仍然可用
- 请参阅 Wiki 中的文档
源代码
DiskSpd 的源代码托管在 GitHub 上:
https://github.com/Microsoft/diskspd
可以使用以下链接报告 DiskSpd 的任何问题:
https://github.com/Microsoft/diskspd/issues