Benchmark your hard drives with Microsoft’s open-source Diskspd
Benchmarking your PC’s hard drives is easy, at least in theory. Download some freeware, point it at your hardware, and you’ll have some vaguely performance-related figures within a very few seconds.
That’s fine for getting a basic speed measurement, but if you’re got more heavy-duty requirements -- benchmarking a server, say -- you’ll need something far more configurable.
Microsoft’s Diskspd is a console-based hard drive benchmarking tool aimed at enterprise users, which provides a vast amount of control over just about every element of testing: methods, duration, threads, queues, CPU and IO priority, affinity, reporting and more.
This can be just as complicated as it sounds, and you’ll need to be a Windows, storage and hardware expert to understand everything Diskspd can do.
And yet, sensible design means that even the average home user can get something from the program.
Here are four example commands you might want to try first. (They’re case-sensitive, and must be run as an administrator, or from an elevated command line).
diskspd c: e:
diskspd -c100M c: e:
diskspd -c100M -d30 c: e:
You’ll probably figure out some of these, maybe all of them, immediately. The first command benchmarks one drive; the second benchmarks two (and shows you how you can add more); the third does this using a 100MB test file, and the fourth runs the test for a duration of 30 seconds (the default is 10).
Each of these returns a plain text report listing the test conditions, and giving you various performance measurements of the target (I/Os, MB/s, I/O per second).
These tests are read-only. You’ll probably want to assess drive write performance, too, but as this command shows, Diskspd doesn’t have to be about one or the other.
diskspd -w10 c:\diskspd.tst
The -w switch tells diskspd the percentage of disk requests that should be writes. Here we’re using 10 percent writes, 90 percent reads, and so generating a benchmark for that type of workload.
Please note, we’ve also specified a specific data file to use. Be careful with this, because whatever you use will be overwritten without warning.
There’s plenty more to explore, with switches to define random or sequential testing, set IO priority, CPU affinity, block and file sizes, control synchronization features, event tracing and more.
If you’re interested, there’s a PDF manual in the download which fills in the detail.
Or, if you’d like an accurate benchmark but don’t have time to learn all the switches, check out CrystalDiskMark instead. It’s essentially a GUI for Diskspd, and gives you reliable read/ write figures with just a few point and clicks.
Diskspd is an open source application, officially supported on Windows Server 2012 R2 and Windows 8.1. We think it will also work on Windows 7 and 10, but didn’t test it ourselves.