NVMe 解除分配性能测试(徽标)

此测试评估高速非易失性内存 (NVMe) 控制器驱动器的 Deallocate 命令的性能。

测试详细信息

   
规范
  • Device.Storage.ControllerDrive.NVMe.BasicFunction
平台
  • Windows 10,客户端版本 (x86)
  • Windows 10,客户端版本 (x64)
  • Windows Server 2016 (x64)
支持的版本
  • Windows 10
  • Windows 10 版本 1511
  • Windows 10 版本 1607
  • Windows 10 版本 1703
  • Windows 10 版本 1709
  • Windows 10 版本 1803
  • Windows 10 版本 1809
  • Windows 10 版本 1903
  • Windows 10 的下一次更新
预计运行时间(以分钟为单位) 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 存储驱动器号