排查 Device.Storage 测试问题
若要排查 Device.Storage 测试发生的问题,请执行以下步骤:
根据存储设备或配置的类型,查看以下 Windows Hardware Lab Kit (Windows HLK) 主题之一:
查看 Windows HLK 发行说明,了解当前测试问题。
对于失败的测试,请在 Windows HLK Studio 测试日志中查找可用信息。 如果找到可用信息,请解决问题并重新运行测试。
如果在 Windows HLK 中运行测试时发现任何失败,请查看生成的测试日志。 例如,对于枚举测试,最相关的日志是 enumeratedrive.log.wtl。 若要查看此日志,请在 HLK studio 中转到“结果”选项卡,然后展开“枚举测试”>“测试运行日期和时间”>“运行测试”>“日志”>“enumeratedrive.log.wtl”。
若要进行更多调试,请从命令提示符 (cmd) 手动重新运行测试,同时将详细级别设置为 4。 这使测试可以记录更多信息,如数据缓冲区、CDB 信息以及感知代码。 每个测试的文档都包含有关与特定测试相关的二进制文件以及二进制文件位置的详细信息。
光存储设备
以下是光盘驱动器测试的常见问题:
某些使用串行高级技术附件 (SATA) 高级主机控制器接口 (AHCI) 模式的控制器可能会导致 CDB 超时。这种超时在启动停止单元测试中发生的频率最高,在这类测试中,测试单元就绪后的 CDB 会超时,而不未返回任何感知代码。 若要解决该问题,请尝试其他控制器或配置。
某些驱动器会间歇性地无法从磁盘中删除数据。 此问题可能是由使用太多次的可重写媒体所导致。 尝试使用新的可重写媒体。
有关如何对测试进行故障排除的详细信息,请参阅 Device.Storage 测试中的特定测试故障排除部分。
混合信息设备
可以执行特殊步骤以在测试中重现特定测试用例,或是在需要时对设备进行手动调查。
安装 hybridflt。 这些文件(.inf、.sys、.cat)位于与 hybriddrive.exe 相同的文件夹下
启用 Storport 跟踪
运行 hybriddrive.exe
命令 | 说明 |
---|---|
Hybriddrive.exe -drive <disk #> -scenario <scenario><additional options> |
运行测试。 |
-Drive <disk#> |
要对其进行测试的驱动器。 未定义启动驱动器或带有文件系统的驱动器的行为。 |
-Verbosity |
用于此测试的日志记录级别。 默认值:1 |
-? |
显示帮助。 |
-Scenario logrw |
要运行的方案。 |
-case # |
要运行的测试用例。 |
-length #(k|m|g) |
指定操作的长度。 |
-offset #(k|m|g) |
指定操作相对于磁盘开头的偏移量。 |
-tpriority #(|none) |
指定操作的目标优先级。 指定 none 表示无优先级(这与优先级 0 不同)。 |
-spriority # |
指定操作的源优先级。 |
-thigh # |
指定高阈值。 |
-tlow # |
指定低阈值。 |
-operation (r|w) |
指定读取或写入。 |
测试方案:
Logverify
Logrw
Logcommand
位置
Tagperf
手动操作:
打印
- 打印出磁盘的当前状态。
Changelba
- 向下发送按范围更改 lba 命令。 此命令的有效选项为 length、offset 和 tpriority。
降级
- 向下发送按大小降级命令。 此命令的有效选项为 length、tpriority 和 spriority。
关
- 关闭缓存。
开
- 打开缓存。
Evict
- 发送收回命令。 此命令的有效选项为 length 和 offset。
阈值
- 设置脏阈值。 此命令的有效选项为 thigh 和 tlow。
Movedata
- 对设备读取和写入数据。 此命令的有效选项为 length、offset、tpriority 和 operation。 这还会为将来的任何 I/O 设置优先级。
优先级
- 为将来的读取和写入设置优先级。 此命令的有效选项为 tpriority。
注意
无效参数会被忽略。
未指定的有效参数会默认为固定值。
可移动存储设备
这些是可移动存储设备的常见性能问题。
对于具有可移动属性的存储设备,会对特定驱动程序堆栈禁用 I/O 排队,以确保可以写入尽可能多的数据。 但是,在识别为固定磁盘的设备上会启用排队。 如果禁用 I/O 排队,则等待每个 I/O 请求完成之后进行下一个 I/O 请求。 因此,它的吞吐量会低于固定磁盘。
有关如何对测试进行故障排除的详细信息,请参阅 Device.Storage 测试中的特定测试故障排除部分。