Tools to measure IOPS and disk latency


I had a hardware vendor, who wants to sell me more hardware, provide a data collection tool to measure IOPS, disk latency and other performance measurements.

Is there a freeware tool that can provide this information without me using a hardware vendor?

I would like to know if I purchase new hardware that it really made a difference and would like to capture before and after results.  

I have Windows 2003 and 2008 server environments with various hard drives and configurations (sata, SCSI, RAID 5, RAID1, etc..)

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

An engineer I was working with used IOMeter to measure IOPs on our T710.
Windows has a built in utility, called perfmon.   Iometer is NOT able to measure IOPs & throughput.  It is a load generator.  It can tell you how much I/O the program creates, and unless there is absolutely nothing else going on, then the numbers aren't correct.
Duncan MeyersCommented:
IOmeter is the devil's work...  :-)
SolarWinds® IP Control Bundle (IPCB)

Combines SolarWinds IP Address Manager and User Device Tracker to help detect IP conflicts, quickly identify affected systems, and help your team take near instantaneous action. Help improve visibility and enhance reliability with SolarWinds IP Control Bundle.

Exactly, iometer is often misinterpreted.  The numbers can't possibly be valid if the load is sent to a file system, either, even if nothing else is going on.  This is because of the additional overhead that NTFS has for logging, contiguous files, file system chunk size, just to name a few.
Duncan MeyersCommented:
>Exactly, iometer is often misinterpreted
I have a screenshot of IOmeter reporting 180,000 IOPS. Off my laptop's 7200rpm SATA drive...
To the author -- what was the data collection tool the vendor supplied?     But the important thing you need to know is that you don't need a synthetic load generator like iometer or anything else.  You need to use the native O/S utility and measure latency and I/O queue depth WITH YOUR APPLICATIONS running.  Unless queue depth is consistently over 2, then you don't need to buy anything.  The queue depth says how often your programs are waiting for disk I/O to complete.  Low latency is nice, but throughput is irrelevant, as it is a function of block size.  

All you need to worry about is the queue depth measured over time.  When the queue depth is consistently less then two it means the storage is no longer a bottleneck.  You could have all top of the line million dollar SSD RAID array and it won't make your computer any faster then a USB-memory stick storage subsystem once the queue depth for your programs averages under 1.0.

If your vendor didn't explain that and is selling you by touting IOPs and throughput, then kick the vendor out.
tucktechAuthor Commented:
Hello dlethe,  

First, I wasn't fair in my initial statement.  Yes the vendor wants me to buy equipment. The vendor suggested we do some analysis, which was reasonable.  Nothing has been decided on what to do and I have alot of questions.  We went through some analsysis and I was disturbed by the high latecny (page 3, output summar right hand column 800ms+).  I am trying to get a better handle on how to measure performance and what it means.

The two questions I really have are "What is the equipment performance?" and "How do I know?".  Currently,  I think things are ok,  because users don't complain.  This is a good measure but I want something more concrete.  To be simple are things green, yellow or red.  Some of this is subjective but I would like to setup performance metrics for Servers, Networks, Internet, etc..   so that I can have some grasp from a technical perspective if thinigs are "normal".

Having said that, could you, or anyone, provide solid advice based on experience, not something that I saw someone do.... and books are reading material is always good.  I really want to have the "how to" and "what it means".  For example I want to say we are traveling at 85mph verus we ware going fast and then to say for this environment 55mph is very good so 85mph is great, etc..

On another note, if 800ms latency is really bad what are the steps of fixing this issue.  Again, someone with experience who has done it and pointing me to "how to" is great.  My conversations with the vendor was I know we have issues because of the environment.  More specifically, we have the following environment:
Windows Server 2008R2; 4gb ram, raid 1 OS, raid 5 data, MS SQL 2000, our database is 6GB.
My initial thoughts are to migrate to SQL 2008, add memory. I would think the SQL issues alone would cause IO thrashing which I think would have a impact on IO latency.  At the same time I would like to capture how is it working now, make changes, and do I have expected results.

tucktechAuthor Commented:
Attachment now added, page 2 not page 3 as referenced above.
You need to model your I/O mix and determine the ratio of reads, writes, random, sequential, and block sizes.   Then you can tune iometer to create a benchmark that models YOUR hardware, so you can benchmark.  Also if you care about performance when hardware is degraded, then yank a disk drive while running benchmarks.

Plenty of things can typically be done to improve performance well before you throw money at it.  Are your partitions aligned?  (Google that).  Since SQL Server does 64KB I/O natively, is your NTFS set up for 64KB chunk size?  These two things alone can give you 25% performance gain, or more.    Now looking at your RAID.  Now that you know the RAID does 64KB I/O at a time, how is  it configured?  If you don't have each disk drive set to do a 64KB chunk, then you are absolutely throwing away I/O.
tucktechAuthor Commented:
The partitions are aligned and the chunk size (allocation unit size) is 4096.  

Back to my original question, what is the best way to monitor and see where I am today and when I make changes if I have improvement?
windows perfmon measures these at the operating system.  But to measure them at the HDD, independently of the O/S, to see how each disk is performing then your RAID controller may have something.  There is a product called smartmon-ux which can measure true I/O byte counts on HDDs, but it isn't free.    It also has limitations as it can't drill into all RAID controllers.   You probably don't need that anyway, as perfmon will tell you what the O/S is experiencing.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Server Hardware

From novice to tech pro — start learning today.