Solved

Best read/write speed benchmarking tool?

Posted on 2011-03-07
9
1,044 Views
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!
0
Comment
Question by:dn0rm
  • 4
  • 2
  • 2
  • +1
9 Comments
 
LVL 9

Expert Comment

by:Timothy McCartney
Comment Utility
HD tune is a great application for HDD performance monitoring and testing
0
 
LVL 9

Expert Comment

by:Timothy McCartney
Comment Utility
0
 
LVL 20

Expert Comment

by:netcmh
Comment Utility
There's Disk Bench, or Hdd Speed Test Tool. I've used all three.
0
 
LVL 47

Expert Comment

by:dlethe
Comment Utility
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.

0
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 3

Author Comment

by:dn0rm
Comment Utility
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.  :)
0
 
LVL 47

Accepted Solution

by:
dlethe earned 500 total points
Comment Utility
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.  



0
 
LVL 3

Author Comment

by:dn0rm
Comment Utility
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?  :)
0
 
LVL 47

Expert Comment

by:dlethe
Comment Utility
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 :)  
0
 
LVL 47

Expert Comment

by:dlethe
Comment Utility
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).  
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

1. Start | Settings | Printers and Faxes. 2. Go to the File Menu. 3. Select Server Properties. 4. Select the Drivers tab. 5. Select the printer you need information about. 6. Once again select Properties. You should get a list of the files requ…
I wrote an article (http://www.experts-exchange.com/articles/2245/Anti-rootkit-software.html) some time ago with a reference to nLite  (http://www.nliteos.com/)slipstreaming software.  I recently changed that link to point to NTLite (https://www.ntl…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

771 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now