Whenever I've bench-marked disks, I've always just used dd and /dev/zero <br><br> Example: I want to see how fast I can write a 1GB file<br><br>$ dd if=/dev/zero of=1GB bs=1024 count=1048576<br>1048576+0 records in<br>
1048576+0 records out<br>1073741824 bytes (1.1 GB) copied, 8.72947 s, 123 MB/s<br><br>As long as the system load is consistent, you should get consistent results. You can have fun by running multiple versions at once, to simulate heavier "real-world" load. <br>
<br>You can change the byte size, or count accordingly. Just be careful what values you give dd, you can easily fill up your disk, or break something nasty with a typo (Yes I've done both )<br><br>-Henry<br><br><div class="gmail_quote">
On Mon, Dec 12, 2011 at 7:31 PM, Pete Wright <span dir="ltr"><<a href="mailto:pete@nomadlogic.org">pete@nomadlogic.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Mon, Dec 12, 2011 at 11:57:41AM -0500, Isaac Levy wrote:<br>
> Hi All,<br>
><br>
> 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.<br>
><br>
> I know from conversations that a few folks here have their own ways of testing disks-<br>
><br>
> I'd really like to know what people do to measure general disk performance?  e.g. really simple tests:<br>
><br>
>   - r/w/d large files<br>
>   - r/w/d small files<br>
>   - disk performance when directories contain large numbers of files<br>
><br>
> I commonly have need to test things like:<br>
>   - different block sizes<br>
>   - different inode allocations (UFS/ext3<br>
>   - different filesystem partition layouts<br>
>   - different filesystem features (think ZFS fun)<br>
><br>
> Any thoughts, experiences, urls or shell utils to share?<br>
><br>
<br>
</div>hey ike!<br>
there is actually a pretty decent chapter on measuring disk and<br>
filesystem performance in "High Performance PostgreSQL 9.0".  they talk<br>
about using a tool, bundled with bonie++, called zcav that will track<br>
transfer rates from the begining to end of a disk subsystem.  it also<br>
will output data into gnuplot friendly format for pcitures.  i used this<br>
quite extensivly while tuning a linux dataware house a while back.<br>
<br>
other tools that I'm happy with are iozone and fio:<br>
<br>
<a href="http://www.iozone.org/" target="_blank">http://www.iozone.org/</a><br>
<a href="http://freecode.com/projects/fio" target="_blank">http://freecode.com/projects/fio</a><br>
<br>
i find that when doing benchmarking of systems for eval purposes or<br>
benchmarking i end up using a mixture of many different tools.  i find<br>
that differnent tools will stress different parts of a given i/o<br>
subsystem.  so i'd generally do something like:<br>
<br>
- initial test using dd with variable blocksizes (dependent upon<br>
underlying filesystem block size)<br>
- several bonie++ tests, followed by some tests using iozone and fio<br>
- depending on how system will be used in production i try some<br>
  application level tests.  for a db - pgbench, webserver apache bench<br>
  etc..<br>
<br>
I have also done some interesting testing using this package written in<br>
erlang that does a good job in generating load on a wide range of<br>
appliation called Tsung:<br>
<a href="http://tsung.erlang-projects.org/" target="_blank">http://tsung.erlang-projects.org/</a><br>
<br>
Hope This Helps!<br>
<span class="HOEnZb"><font color="#888888">-pete<br>
<br>
--<br>
Pete Wright<br>
<a href="mailto:pete@nomadlogic.org">pete@nomadlogic.org</a><br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
talk mailing list<br>
<a href="mailto:talk@lists.nycbug.org">talk@lists.nycbug.org</a><br>
<a href="http://lists.nycbug.org/mailman/listinfo/talk" target="_blank">http://lists.nycbug.org/mailman/listinfo/talk</a><br>
</div></div></blockquote></div><br>