• Michael Valentine Jones (4/19/2013)


    Your SQLIO test file size is far too small to be a valid test. I prefer to make it something close to the size of the database or at least 20 GB. Run a short throwaway test to create the test file, and use it for the remaining tests. This makes sure you are reading/writing data from/to the disk, instead of the disk controller cache.

    Also, you should really run a series of tests, where you add to the workload on each test until you reach the limit of the acceptable level of Avg Latency, say 40 MS. You can do this by increasing the number of threads on each test.

    You also need to run tests for sequential read, sequential write, random read, and random write. Random read and random write are probably the most important for SQL Server.

    Also, run these tests with different block sizes, say 4K, 8K, 16K, 32K, and 64K. 64K is probably the most important for SQL Server.

    One final suggestion: setup a standard test suite and perform it on every new SQL Server before you put it into production. Make sure the IO performance is OK before you go live. Save the test results for each server so that you can refer to them later and compare them to a new series of tests if there are problems later. An Excel worksheet is a good place to store the data.

    I know this seems like a lot of work, but it can save a lot of trouble in the long run, and it gives you hard numbers to show there is a problem. I have managed hundreds of servers and I can tell you from experience that disk IO performance problems are not uncommon, especially with SAN.

    Thanks Michael for responding. I bolded the above where im having trouble determing "OK". How do I define "OK" within the context of the server's role (SQL backend for web UI). Is there something I can reference that I can present to help assist with my recommendation?

    The only thing I've found so far related to avg disk read/sec:

    http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/d68c5590-bf90-4b02-8fd7-79561fdbb0ff

    Is there anything like this for SQLIO?