Thin Provisioning Performance Test - NTFS (LOGO)
This automated test evaluates the NTFS performance of the Unmap command for thin provisioning LUNs.
Test details
Associated requirements |
Device.Storage.Hd.ThinProvisioning.BasicFunction |
Platforms |
Windows Server 2012 (x64) Windows Server 2012 R2 |
Expected run time |
~180 minutes |
Categories |
Certification Reliability |
Type |
Automated |
Running the test
Before you run the test, complete the test setup as described in the test requirements: Hard Disk Drive Testing Prerequisites.
The test requires a thin provisioned LUN device setup on the client machine. The LUN must satisfy the following requirements:
The drive should be a non-boot drive. The test is destructive. It will prepare the disk with correct partition and formatting for the test.
The drive must support UNMAP (10) command. The VPD B0h page’s LBPU bit is set to 1. The test will send down Unmap commands by using the DATA SET MANAGEMENT’s Trim command.
Make sure that there is a separate drive available to be used as a logger drive. The test will automatically pick the logging drive. It is important to minimize the amount of activity that occurs on the drive (outside of the logo test). Because this is a performance test, outside activity can affect the results.
Troubleshooting
For troubleshooting information, see Troubleshooting Device.Storage Testing.
Error | Description/Workaround |
---|---|
Test failed and went to check WTT Trace |
How to check log files upon test failure:
|
No metrics found |
The test depends on Storport ETW tracing being enabled to get the command completion metrics. Make sure that no other Storport ETW traces are currently logging. Only one Storport ETW trace can be active at a time. |
Test failed with a “write protected” error |
|
Test warns: “The test drive does not support trim”. |
|
Test warns: “Read/write max latency exceeds logo requirement of 500.0 ms”. |
The test sends IO together with Unmap when it measures the max IO latency. The virtual address of IO and Unmap are not interleaving. |
More information
Parameters
Parameter | Description |
---|---|
StorageDriveNumber |
The drive number of the thin provisioned LUN which test is to run on. Example: 2. |
LogDriveLetter |
The drive letter of the disk on which to keep logs. Example: E:. |
DeviceType |
The type of the device under test. Default value: StorEnterprise |
Scenario |
The scenario of the test (Performance or Compliance). Default value: Performance |
DiskSize |
The part of the disk on which to run the test. If this parameter is 0, then the test will run on the entire disk. Default value: 0 |
Cooldown |
The cool down time in seconds between test cases Default value: 2 |
Test metrics
Command | Test metrics |
---|---|
Unmap command |
All Unmap commands shall be completed in less than 500ms. |
IO command(with Unmap sending at the same time) |
|
Currently this test only gives warnings if the thin provisioned LUN under test fails to meet the bar described in the preceding table. The test never fails on this, but you must make sure that the LUN supports UNMAP (10) command, and that the LUN never goes offline when the test is running.
To manually reproduce the test
Open the Registry Editor and follow the path: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI\Disk&Ven_[name of drive under test]\[device instance path of the thin provisioned LUN]\Device Parameters\Storport
Right click Storport, click New, and click DWORD (32-bit) Value.
Name the key EnableLogoETW, and set the value to 1.
Replug the drive under test or reboot the machine to enable the registry key.
Copy TrimPerf.exe, EtwProcessor.dll, Wex.Common.dll, and Wex.Communication.dll files to the local drive.
Run the test on a command line (see Command Syntax).
Command syntax
Command option | Description |
---|---|
TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType [DeviceType] /Scenario [Scenario] /DiskSize [DiskSize] /Cooldown [Cooldown] |
Runs the test. |
Note
For command line help for this test binary, type /h.
File list
File | Location |
---|---|
TrimPerf.exe |
<[<[testbinroot]>]> \nttest\driverstest\storage\wdk\ |
EtwProcessor.dll |
<[WHCK\TAEFBinRoot]>\ |
Wex.Common.dll |
<[WHCK\TAEFBinRoot]>\ |
Wex.Communication.dll |
<[WHCK\TAEFBinRoot]>\ |