Best read/write speed benchmarking tool?

Posted on 2011-03-07
Last Modified: 2012-05-11
I'm looking for an accurate drive speed benchmarking tool.  This application would need to test read/write speeds and be able to read and write various ways (configurable would be nice).  The tests will be on windows machines and reading/writing from/to SAN, NAS, Local drivers, RAID and Non RAID configurations.

Free would be great but willing to throw some money at this if necessary, i've struggled to find a tool that is reliable and highly accurate, thanks!
Question by:dn0rm
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
  • 2
  • +1

Expert Comment

by:Timothy McCartney
ID: 35061647
HD tune is a great application for HDD performance monitoring and testing

Expert Comment

by:Timothy McCartney
ID: 35061651
LVL 20

Expert Comment

ID: 35061721
There's Disk Bench, or Hdd Speed Test Tool. I've used all three.
Turn Insights Into Action

You’ve already invested in ITSM tools, chat applications, automation utilities, and more. Fortify these solutions with intelligent communications so you can drive business processes forward.

With xMatters, you'll never miss a beat.

LVL 47

Expert Comment

ID: 35065193
The previous experts recommended some basic consumer stuff which is ok, but they are not *really* good disk benchmarking tools, certainly not the kind of things that will help you evaluate RAID.

For example, to properly evaluate RAID, you need to inject errors.  I.e, I want an ECC error on Block #10000 on disk #3, then I want to change the block size and see how long of a delay it costs me.

These tools also do not actually measure how much I/O goes to the disk drive. they measure how much I/O their particular programs told the midlayer to create.  File system efficiency or even device driver efficiency can be a factor, and these low-end tools won't detect it.

What about unrecoverable & recoverable read errors;  backplane/expander saturation?  Is the physical interface (if SAS or SAS-2) using 3Gbit, 6Gbit?  Is the I/O using one or both ports?

Are you looking at configurable mode pages, and setting baselines for configurable drive parameters.   (SCSI, FC, SAS can literally have hundreds, but only a dozen or so can significantly impact performance.  Sometimes you can get 50% delta based on a configurable disk parameter that varies between firmware revisions).

Are the benchmarking programs skewing the results (well, always), but can they even be trusted?   Are you aware that all of these tools under windows can actually continue to send I/O to the disks for a good 5 or I've seen I/O go to disks for up to 10 seconds after the "benchmark" program completes?

Do they flush i/O? If you copy 1GB as a benchmark, do they make sure that the 1GB actually gets saved to the disk BEFORE the clock stops?   How is queue depth handled?  Is the bench reordering I/O requests artificially which can skew results?  

So  you see if you want an ACCURATE bench, you wont get it with those products.    So exactly what do you need, and what are you trying to measure.   Those products may meet your needs just fine, but then again they may be useless for purposes of any serious tuning or analysis.


Author Comment

ID: 35065637
thanks to all who have responded, i have played with these tools and they do measure performance and do a decent job, but i am looking for something a bit more in depth.  

diethe, i'll assume you work in the enterprise storage space based on this reply, i tip my hat to you on the breadth and depth of your note.  thank you for taking the time to write all of this.  i'll do my best to simply summarize what I'd love this tool to accomplish (such tool may not even exist).

what i am looking for is a good way to evaluate disk performance up to the point of saturation where said saturation causes application performance to degrade.  so this tool would be able to simulate multiple writes from multiple different processes (sequential writes are fine)...example: worker1.exe worker2.exe worker3.exe all writing large amounts of data simultaneously - how many of those workers can i run simultaneously while writing data to the same or multiple volumes before i saturate the data flow pipeline (ethernet, sata, sas, backblane, fibre, physical disk, file system etc) somewhere.

the same tool would be able to simulate the reads with multiple worker processes similar to the writing scenario.  the data being written and read could be in many ~100MB files or it could be one large ~300GB file.

the interface speed and other details you are asking about i believe would be irrelevant because it is what it is...what i need to understand is when and how many workers writing/reading cause the storage system to be the performance degradation point.  This tool would be for understanding best optimal high speed storage configurations and for troubleshooting performance issues.

thanks again for the well written, well thought out reply.  :)
LVL 47

Accepted Solution

David earned 500 total points
ID: 35065828
Yep, I'm in the 'biz .. how can you tell :)

Well, the right way to do it is somewhat counter-intuitive.

First, you don't need a benchmarking program.  You probably already have a great one.  It is called a real-world load.  These entry level utilities rarely provide any real-world repeatability and won't tell you how a subsystem does with your particular load.  A benchmarking load such as what these produce are way to synthetic.  They have a place if you are looking at perhaps a certain firmware revision and retry logic when everything else is equal, but to build useful info, you need 2 components.

1. a load generator.   These utilities can be part of the equation.  Since you are looking at saturation, though a better method is to use file-system based  I/O.  That is because real-world, you get a mix of I/Os of 64KB, 4KB, reads & writes with multiple concurrent threading.   You aren't taxing such things as elevator algorithms and I/O reordering which means the results will look good on paper, but you could very well end up with the best disk on the paper benchmark being the slowest drive on the mix.   Artificial tests tend to have outrageously high number of cached I/Os.

Getting errors is important as you could get an unrecovered read error and the disk could hang for 5-10 seconds, and you would never know but that disk would look awful on the benchmark, so you have to look at health & I/O counters to see if the test is valid & clean ... or if error-injecting, make sure everything is equal.

2. A reader.   You do not test throughput & saturation by what you push to the disk ... you measure what was SENT & RECEIVED by the disk drive.   I can show you dumps where I've got the same controller & enclosure and 2 different disk drives with same specs on paper.  One does 25% slower because it gets thousands of recovered I/O errors per second that don't show up anywhere, except via some test code I wrote that digs into the expander and also digs into some HDD counters to report the actual byte counts and the dozen or so counters relating to I/O.  

You can drill into SAS, FC, and even SCSI disks  and get counters for all I/Os down to the actual number of bytes read and written.  With Seagate disks you can also get counters relating to number and frequency of cached reads.  (Without an analyzer, which is $20,000++).  So if you want really good, accurate numbers, you can't use SATA/ATA unless you get an analyzer.

Sounds like you are interested in saturation.  How many disks can you add until you get diminishing returns then performance hit.

The interace speed and those details MAY be important.  Are you aware that SAS disks have 2 I/O paths?  Not all backplanes/expanders will let you use them, and you could sync up at 6Gbit or 3Gbit/sec and there is no indication anywhere from windows what is going on, but obviously you don't want to leave performance on the table.

iometer is a decent load generator.  Use one or two host computers to generate the workers.  

100MB files are too small to be of statistical relevance, unless you are using good software that measures true I/O at the disk drive, not what was pushed out.  Heck, those files  can fit in cache, so you may never be doing any real I/O.  


Author Comment

ID: 35066037
If real world load were easy to come by I don't think I'd be looking for these utilities for some type of simulation :)  Real world load in my world requires loads of hardware and expensive infrastructure.  Aside from a  customer letting us use their system for weeks to gather this data, simulation is all I have to go from.  

After reading through your posts I believe I have a good (better for certain) understanding of where I stand.  I need to tool around with iometer for some advanced thoughput testing and understand which of these consumerish applications I can trust the most for simple to intermediate analysis.  In terms of the level of analysis you mention above, I typically am not responsible there...I'll hope someone like yourself is around (from the storage vendor) should I find myself in such a bind :)

netapp, emc/isilon, hp?

one of those?  :)
LVL 47

Expert Comment

ID: 35066178
Nope, I'm independent, but 2 of 3 are current customers, and if you're running any of those, chances are good you've run some of my code :)  
LVL 47

Expert Comment

ID: 35066395
Oh, and me or just about any other expert can be coerced to provide some one-on-one for things that fall outside the scope of EE.   Just look at an expert's profile and many have a way to contact them.  (But this is not a solicitation, I'll answer questions for t-shirts like everybody else).  

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Find out what hardware you have and get the most up to date drivers from the manufacturer! Automatically Get Your Drivers There is a number of great programs that will detect your hardware and find drivers for you automatically! Here is a link …
I wrote an article ( some time ago with a reference to nLite  ( software.  I recently changed that link to point to NTLite (https://www.ntl…
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

695 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question