DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
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 tool from the Windows, Windows Server and Cloud Server Infrastructure engineering teams at Microsoft. Please visit https://github.com/Microsoft/diskspd/wiki 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 [email protected] 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 https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip (aka https://aka.ms/getdiskspd).
NOTE: two default changes may require rebaselining. Thread affinity now orders P-cores before E-cores within each group by default (-aup restores unordered assignment), which changes placement on heterogeneous systems. I/O buffers are now separated by PDE cache line by default (-bsp; use -bsn for the prior system-default allocation).
-u[n]<batchsize>[p]) with registered buffers by default and configurable submission batching.-Sy allows partial bypass and -SY requires full bypass.-ac assigns one thread per physical core before using SMT siblings.-as spans processor groups before filling each group.-ap, -aP, -ae, and -aE control P-core/E-core ordering; -aup disables efficiency ordering.-bs) and completion-port dequeue depth (-oc).-Rs).The binary release contains amd64 and arm64 builds. The minimum supported operating system is Windows 10, version 1803 (RS4). IoRing and BypassIO require Windows 11 or later; BypassIO also requires NTFS.
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 -fBinary release supports down to Windows 8 and Windows Server 2012; now uses the Universal CRT.
-g<n>i form allowing throughput limit specification in units of IOPS (per specified blocksize)-rs<pct> to specify mixed random/sequential operation (pct random); geometric distribution of run lengths-rd<distribution> to specify non-uniform IO distributions across targetpct by target percentageabs by absolute offset-Rp<text|xml> 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<vni> 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<ThreadTarget> element to support target weighting schemes/? 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).<WriteThrough> element to specify write-through<DisableAllCache> is no longer emitted (still parsed, though), in favor or <WriteThrough> and <DisableOSCache>-Z<size>,<file>)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:
https://github.com/Microsoft/diskspd
Any issues with DiskSpd can be reported using the following link:
No open issues yet, or sync has not completed.