NVMe 解除分配性能测试(徽标)
此测试评估高速非易失性内存 (NVMe) 控制器驱动器的 Deallocate 命令的性能。
测试详细信息
规范 |
|
平台 |
|
支持的版本 |
|
预计运行时间(以分钟为单位) | 2 |
类别 | 基准 |
超时(以分钟为单位) | 120 |
需要重启 | false |
需要特殊配置 | false |
类型 | automatic |
其他文档
此功能区域中的测试可能会有其他文档,包括先决条件、设置和故障排除信息,这些内容可在以下主题中找到:
运行测试
在运行测试之前,请按照如下测试要求中所述完成测试设置:硬盘驱动器测试先决条件。
此测试要求连接 NVMe 控制器驱动器。 驱动器还必须满足以下要求:
驱动器应为非启动驱动器。 测试具有破坏性。 将用正确的分区和格式化准备磁盘,以进行测试。
驱动器必须支持 Deallocate (Trim/Unmap/Discard) 命令。 该测试将使用 DATA SET MANAGEMENT Trim 命令发送 Deallocate 命令。
确保有单独的驱动器可以用作记录器驱动器。 测试将自动选取日志记录驱动器。 尽可能减少驱动器上发生徽标测试范围外的活动非常重要。 由于这是性能测试,因此范围外的活动可能会影响结果。
故障排除
有关 HLK 测试失败的常规故障排除,请参阅排查 Windows HLK 测试失败问题。
有关详细的故障排除信息,请参阅排查 Device.Storage 测试问题。
检查 WTT 跟踪
查看运行修整性能测试的任务日志。
打开日志文件 TrimPerf.wtl。
检查可能解决问题的消息。
复制 .wtl 日志文件。 这是 WTT 跟踪部分所述的 WTT 跟踪。
检查启动的命令的结果
浏览修整性能测试(徽标)的作业日志。
打开 LaunchCommand.result。
如果错误与启动某个进程相关,请确定 logman 或 tracerpt 失败的原因。
未找到指标
此测试依赖于启用 Storport ETW 跟踪以获取命令完成指标。 有关启用此跟踪的详细信息,请参阅“ETW 跟踪”一节。
请确保当前没有其他 Storport ETW 跟踪正在日志记录。 一次只能有一个 Storport ETW 跟踪处于活动状态。
如果收到错误消息“测试驱动器不支持修整”,请尝试以下选项:
检查 NVMe 驱动器,确保 VPD B2h 页的 LBPU 位设置为 1。
尝试通过 DATA SET MANAGEMENT 的 Trim 命令发送 Deallocate 命令。
再次运行测试。
如果由于读取和写入最大延迟超过 500 毫秒而致测试失败,请尝试以下选项:
检查不带 Deallocate 的 IO 延迟。 尝试将延迟降低至 500 毫秒以下。
检查存在 Deallocate 的 IO 延迟。 尝试将延迟降低至 500 毫秒以下。
如果想要通过运行特定测试用例来调试失败,可以尝试以下命令行选项:
用编号显示所有测试用例:TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Performance /PrintTestCaseName
按测试用例编号运行特定测试用例:TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Performance /Precondition F /TestCase [TestCaseNumber]
如果想要通过运行特定纯修整方案来调试失败,可以尝试以下命令行选项:
二进制文件具有单元测试选项:TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Performance /Precondition F /UnitTest T /RangeCount [NumberOfRangesPerDeallocateCommand] /SizeCount [SizeOfEachRange] /SizeUnit [Slab | Sector] /TrimCount [NumberOfTrims]
/RangeCount:每个 Deallocate 命令的范围数
/SizeCount:/SizeUnit 中每个范围的大小
/SizeUnit:/SizeCount 的粒度,可以是碎片(最佳非映射粒度)或扇区 (LBA)。
/TrimCount:测试用例中发送的 Deallocate 命令数。
如果想要更快地调试失败,请尝试通过添加 /Precondition F 参数来禁用预处理(将驱动器填满到 90%,时间较长),如下所示:
- TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Performance /DiskSize 0 /Cooldown 2 /Precondition F
更多信息
此测试执行以下操作:
Deallocate 命令
- 所有 Deallocate 命令都应在 500 毫秒内完成。
IO 命令(在不同区域同时进行 Deallocate 发送)
所有读取和写入命令都在 500 毫秒内完成。
98.5% 的 I/O 命令在 100 毫秒内完成。
命令语法
命令 | 说明 |
---|---|
TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LogDriveLetter]: /DeviceType [DeviceType] /Scenario [Scenario] /DiskSize [DiskSize] /Cooldown [Cooldown] |
|
运行测试。 |
注意
有关此测试二进制文件的命令行帮助,请键入 /h。
文件列表
文件 | 位置 |
---|---|
TrimPerf.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
Etwprocessor.dll |
<[taefbinroot]>\ |
Wex.common.dll |
<[taefbinroot]>\ |
Wex.communication.dll |
<[taefbinroot]>\ |
参数
参数名称 | 参数说明 |
---|---|
WDKDeviceID | 要测试的设备的实例路径。 |
LLU_NetAccessOnly | 用于访问测试文件共享的用户帐户。 |
LLU_LclAdminUsr | 用于运行测试的用户帐户。 |
Destructive | (0,1) 0=被动,1=破坏性 |
StorageDriveNumber | 存储驱动器号 |