Running a disk test need not be complicated. Microsoft provide a cheeky little hard disk test program that can be used, you can download it from https://github.com/microsoft/diskspd.
A simple run can be completed with the following command to test the hard drive performance based on the parameters entered.
diskspd.exe -d60 -W15 -C15 -c128M -t4 -o4 -b8k -L -r -Sh -w50 c:\disk-speed-test.dat
If you wish you can add “> c:\drive-test-results.txt” to the end of the command to output the result to a file.
A breakdown of the arguments used on the command can be found here:
- -d60 — How long the command will run for in seconds.
- -W15 — Set the warm-up time before the test starts.
- -C15 — Set the cool-down time after the test.
- -c128M — The size of the file created for the test, making this larger, means a bigger file therefore using more of the hard disk(s) during the disk.
- -t4 — Number of threads for the program to run under, you can use one per available core in the processor.
- -o4 — Set the number of outstanding I/O requests per target per thread.
- -b8k — Sets the block size, default is 64K.
- -L — Measures latency statistics.
- -r — Makes the I/O random, override with the “-s” option, often you’ll want random, but if you are testing say or a very sequential workload, e.g. database transaction logs, you might want this changed.
- -Sh — Ensures software and hardware write caching is disabled.
- -w50 — Specifies the percentage of write and read requests. Depending on what you are wanting to test this you may want to change. Setting to 100 means a 100% write test. setting to 0% means a 100% read test, setting to 50% means it will be 50% read, 50% write. Change to whatever you need for your test. Normally 50/50 will do, but if for example you are testing a media streaming server, you might want 95% read, 5% write, so you can get an idea of read rate.
- c:\disk-speed-test.dat — This is the path to store the target file for the test.