I have what I think are a few simple questions (I think) when it comes to benchmarking a hard drive. Say this hard drive is connected to a computer with a modern processor that has lots of cache and access to tons of RAM. Between the computer and the drive is a really smart RAID controller with gigabytes of its own caching.
So I want to run a drive benchmark program like HD Tune to get some hard drive performance numbers for reads and writes. How do I know that the processor and IO controller don't conspire to intelligently dispatch these read/write accesses into the cache/RAM to improve performance?
Do I have to ensure that the benchmark test performs tests to a memory space larger than the system memory + caches? I.e. to force the accesses to go to the hard drive?
Would this mean that the test results gotten from accesses to memory addresses 0 thru the size of system memory should be expected to be much better than the rest?
Or does HD Tune somehow send low level SATA read or write commands that would bypass any caching or buffering, such that it is directly testing the drive? Even if this were the case, if there was a RAID controller in-line to the hard drive, i don't see how you could prohibit it from caching and/or redistributing the accesses to improve performance?
These ideas just occurred to me, and I feel like I must be missing something simple... thanks for any help.