SQLIOSim is "NOT" an I/O Performance Tuning Tool

This blog post is to again inform you "NOT" to consider SQLIOSim as an I/O performance evaluation tool!   Every other month or so I get a rash of questions about using SQLIOSim to validate I/O performance and I have to repeat the same information.

As I have stated in other posts and documents SQLIOSim and SQLIOStress were designed to test the I/O stability not performance characteristics.   SQLIOSim specifically includes random patterns as various stages of testing that will invalidate any performance comparison attempts.  This even includes one SQLIOSim run to another.

SQLIOSim also includes segments of unbounded I/O attempting to to push memory and various queues to extreme depths.   This too invalidates performance comparisons.

Don't consider SQLIOSim for performance benchmarking, instead use SQLIO Disk Subsystem Benchmark Tool: http://www.microsoft.com/downloads/details.aspx?familyid=9A8B005B-84E4-4F24-8D65-CB53442D9E19&displaylang=en 

Bob Dorr
Senior SQL Server Escalation Engineer

Comments (9)
  1. JPolisel says:

    Hi Bob,

    SQLIO Disk Subsystem Benchmark Tool is such a great tool. In fact I was looking for this kind of tool for a while.

    Do you have plans to release it for x64 and IA64 so I can take benchmarks on my new highend servers?

    Thanks and regards,


  2. psssql says:

    SQLIO and SQLIOSim are owned by the SQL Server development team and I don’t know the status of X64 or IA64.  

    For X64 you can run in the WOW and it is a valid test.   X64 supports 4K OS pages so actions such as scatter/gather I/O are safe from the WOW.   This is not the case from IA64.

  3. jlangston@cimarex.com says:

    So when a new server that will eventually be running SQL Server and there needs to be validation of how well its disk subsystem will handle a lot of activity.  

    My assumption has been that SQLIOSim is the correct tool to make this assessment.  

    True or false?

  4. Nadold says:

    I kind of see what you are getting at (even though your use of quotation marks around the word "NOT" somewhat undermines the clarity of your message), still I wonder how what you are saying here goes together with the information you are quoted as having given in this posting on SQLIOSim: sqlblog.com/…/understanding-sqliosim-output.aspx.

    In that posting, you mention clear cut threshold values like "Running Average IO Duration (ms), Low values are good […] [Bob Dorr] […] ideal I/O is 4-8ms, anything higher is not a preferred outcome".

    Sounds like performance testing to me…

    I understand that these are internal tools and you have no obligation to give any support to anyone, but still I wonder how these two postings fit together.

  5. Jamie says:

    I think Bob's point here, as specified in the title, is that there is to much varibility in the IO that this tool generates throughout a run, and between different runs for it to be used for 'Performance Tuning'.  The way I interpret this is you can't get results from one run, tweak a setting, execute another run, then compare the two run's outputs to confirm that your tweak improved performance or not.  The IO is too different during each run to make a direct comparison of the results to validate a tweak of a setting.  This tool can however be used to get extra data about whether an IO problem exists that may only appear under the variable load of a 'Simulation' tool rather than a benchmark tool like SQLIO.  But SQLIO is still necessary to validate the tweaks to resolve it.

  6. Abhay says:

    I am glad that I saw this post ..Thanks bob

  7. Abishek says:

    If SQLIOSIM is not intended to do performance benchmarking, why do the tool reports IO taking longer than 15 seconds..

  8. Rajeev says:

    When we say " place Data file and log file in separate disk/drive, that means Separate hard disk or same Hard disk but different drive .

    say  Data file in d drive and log in e drive on same machine?

    Please elaborate a little bit more

Comments are closed.

Skip to main content