Tools.DavidKlee.net

A collection of custom tools built to make you more efficient.

SQLIO Analyzer

SQLIO is one of my favorite free tools for storage benchmarking. For SQL Server, one of the most important factors in performance is disk throughput. How fast is your storage? What happens to performance if your workload doubles or something runs in the background? Where is your system running today, and what baseline do you have to compare the performance against?

SQLIO provides a command-line tool that can simulate OLTP traffic on a storage system. Most people complain that it is too hard to use for large batch operations. I created a tool a while back for my personal use to overcome this obstacle and to save myself great amounts of time. After showing it to multiple clients, each of them asked to have a copy for their internal use. After some time spent cleaning up the tool, I have now released it to the general public for you all to use, free of charge. 

This tool provides a test bundle that you can download and stage on a server that you wish to evaluate. Configure your workload file location and size and test runtime, and sit back while your system runs through a full set of performance tests. Upload the output file and my tool performs a quick analysis for you and presents you with a spreadsheet with nice charts and graphs that are suitable for all audiences.

Your average SQLIO test output looks like this:

C:\sqlio>sqlio -kW -t4 -s10 -dD -o128 -fsequential -b64 -BH -LS  -Fparam.txt
sqlio v1.5.SG
using system counter for latency timings, -1800967296 counts per second
parameter file used: param.txt
file d:\sqliotestfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads writing for 10 secs to file d:\sqliotestfile.dat
using 64KB sequential IOs
enabling multiple I/Os per thread with 128 outstanding
buffering set to use hardware disk cache (but not file cache)
using specified size: 8000 MB for file: d:\sqliotestfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 2226.23
MBs/sec: 139.13
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 104
Max_Latency(ms): 2451
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96

 

The analysis presents you with graphs that look like this:

SQLIO - IOps

SQLIO - MBps

And charts like this:

SQLIO - Charts

The items are great for a quick glance. If something does not look right, further analysis is always warranted. 

Full instructions for the tool are here, and if you are ready, click here to try it out!