[nycbug-talk] Measuring Disk Performance

Isaac Levy ike at blackskyresearch.net
Thu Dec 15 09:13:55 EST 2011

On Dec 12, 2011, at 7:31 PM, Pete Wright wrote:

> On Mon, Dec 12, 2011 at 11:57:41AM -0500, Isaac Levy wrote:
>> Hi All,
>> Disks: I need to measure disk performance across heterogeneous UNIX boxes, and I'm sick of bonnie++ for a bunch of reasons I won't' waste time on here.
>> I know from conversations that a few folks here have their own ways of testing disks-
>> I'd really like to know what people do to measure general disk performance?  e.g. really simple tests:
>>  - r/w/d large files
>>  - r/w/d small files
>>  - disk performance when directories contain large numbers of files
>> I commonly have need to test things like:
>>  - different block sizes
>>  - different inode allocations (UFS/ext3
>>  - different filesystem partition layouts
>>  - different filesystem features (think ZFS fun)
>> Any thoughts, experiences, urls or shell utils to share?
> hey ike!
> there is actually a pretty decent chapter on measuring disk and
> filesystem performance in "High Performance PostgreSQL 9.0".  

Is it this book:
"PostgreSQL 9.0 High Performance"
Author: Gregory Smith
Publisher: Packt Publishing

> they talk
> about using a tool, bundled with bonie++, called zcav that will track
> transfer rates from the begining to end of a disk subsystem.  it also
> will output data into gnuplot friendly format for pcitures.  i used this
> quite extensivly while tuning a linux dataware house a while back.
> other tools that I'm happy with are iozone and fio:
> http://www.iozone.org/
> http://freecode.com/projects/fio
> i find that when doing benchmarking of systems for eval purposes or
> benchmarking i end up using a mixture of many different tools.  i find
> that differnent tools will stress different parts of a given i/o
> subsystem.  so i'd generally do something like:
> - initial test using dd with variable blocksizes (dependent upon
> underlying filesystem block size)
> - several bonie++ tests, followed by some tests using iozone and fio
> - depending on how system will be used in production i try some
>  application level tests.  for a db - pgbench, webserver apache bench
>  etc..

Understood, really comprehensive, and valuable!

Have you posted your methodology and/or resulting tests anywhere?

Conversely, what I'm looking to really do here, is more of a cave-man sanity test: test a few small common cases in a relative vaccum, ideally using UNIX builtins spitting a few integers back to stdout.  (mix a bit of xargs with rm, mkdir, dd, etc…)

I'm actually looking to avoid going down this path alltogether, as I'd rather focus this level of detail on measuring disk/system performance as the team hammers our apps.

> I have also done some interesting testing using
> http://tsung.erlang-projects.org/

*That* looks rad- way off direct disk testing, but that's a very compelling toolkit...

Thanks Pete!


More information about the talk mailing list