winget install --id=Microsoft.DiskSpd -e
DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams.
DiskSpd is a storage performance testing tool designed to evaluate the performance of storage systems under various workloads. It provides detailed metrics on IOPS, latency, throughput, and CPU utilization, enabling users to assess storage performance accurately.
Key Features:
Audience & Benefit: Ideal for system administrators, storage engineers, and IT professionals tasked with optimizing storage performance in data center or cloud environments. DiskSpd helps ensure that storage solutions meet performance expectations under real-world conditions.
The tool can be installed via winget, making it easy to integrate into existing workflows.
DiskSpd is a storage performance tool from the Windows, Windows Server and Cloud Server Infrastructure engineering teams at Microsoft. Please visit for updated documentation.
In addition to the tool itself, this repository hosts measurement frameworks which utilize DiskSpd. The initial example is VM Fleet, used for Windows Server Hyper-Converged environments with Storage Spaces Direct.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
The Releases page includes pre-compiled binaries (ZIP) and source code for the most current releases of the DiskSpd tool. The latest update to DiskSpd can always be downloaded from (aka ).
NOTE: changes to the asynchronous IO loop will require rebaselining results with queue depths greater than 1.
The new design drains the completion queue more aggressively, shrinking delays that impacted latency measurement
especially on faster storage targeting higher queue depths. Latency measurement is improved at a very small cost
to rates, as well as improving rates when latency measurement is not used (-D
or -L
) due to batch dequeue.
Smaller IO sizes will see the most change.
P
suffix (this will usually be 1P
v. 0
)-a
and -n
)-Bbase[:length]
; replaces -B
and -f
Binary release supports down to Windows 8 and Windows Server 2012; now uses the Universal CRT.
-gi
form allowing throughput limit specification in units of IOPS (per specified blocksize)-rs
to specify mixed random/sequential operation (pct random); geometric distribution of run lengths-rd
to specify non-uniform IO distributions across target
pct
by target percentageabs
by absolute offset-Rp
to show specified parameter set in indicated profile output form; works with -X XML profiles and conventional command line-Sm
option to enable memory mapped I/O-N
option to specify flush options for memory mapped I/O-Z
option to increase performance-O
option for specifying the number of outstanding IO requests per thread-Zr
option for per-IO randomization of write buffer content/?
example to use -Sh
v. deprecated -h
-S
is expanded to control write-through independent of OS/software cache. Among other things, this allows buffered write-through to be specified (-Sbw
).is no longer emitted (still parsed, though), in favor or
and ``-Z,
)VM Fleet is a performance characterization and analyst framework for exploring the storage capabilities of Windows Server Hyper-Converged environments with Storage Spaces Direct.
Set-FleetRunProfileScript
- produce a free-run script based on one of the defined workload profilesWatch-FleetCPU
- new support for monitoring guest VCPU utilization (-Guest); can handle data outagesSet-FleetPause
will wait for VM responses before completion by default (see -Timeout)
Several minor fixes including:
Show-Fleet
IOPS view now aggregates all VM disk devicesThe source code for DiskSpd is hosted on GitHub at:
Any issues with DiskSpd can be reported using the following link: