raidtest for zfs

Pawel Jakub Dawidek pjd at FreeBSD.org
Fri Sep 21 10:06:47 PDT 2007


On Fri, Sep 21, 2007 at 08:33:47PM +0400, ?????? ??????? wrote:
> > > How to run raidtest (
> > > http://www.freebsdsoftware.org/benchmarks/raidtest.html ) on zfs?
> > >
> > > diskinfo dos'n work.
> >
> > raidtest is for block device testing. If you want to test ZFS with it,
> > you need to create ZVOL with 'zfs create -V' command, eg.
> >
> >         # zpool create tank raidz da{0,1,2,3,4}
> >         # zfs create -V 100g tank/vol
> >         # diskinfo -v /dev/zvol/tank/vol
> 
> 
> 
> I get strange and fantastic results:
> 
> > raidtest genfile -s 209715200 -S 512 -n 50000 -r -f
> File raidtest.data generated.
> Number of READ requests: 50000.
> Number of WRITE requests: 0.
> Number of bytes to transmit: 3279956992.
> 
> > raidtest test -d /dev/zvol/tank/vol -n 10
> Read 50000 requests from raidtest.data.
> Number of READ requests: 50000.
> Number of WRITE requests: 0.
> Number of bytes to transmit: 3279956992.
> Number of processes: 10.
> Bytes per second: 245146813
> Requests per second: 3737
>                                  ^^^^^ - too big!
> 
> > raidtest genfile -s 209715200 -S 512 -n 50000 -f
> File raidtest.data generated.
> Number of READ requests: 25046.
> Number of WRITE requests: 24954.
> Number of bytes to transmit: 3311506944.
> 
> > raidtest test -d /dev/zvol/tank/vol -n 10
> Read 50000 requests from raidtest.data.
> Number of READ requests: 25046.
> Number of WRITE requests: 24954.
> Number of bytes to transmit: 3311506944.
> Number of processes: 10.
> Bytes per second: 195043585
> Requests per second: 2944
>                                  ^^^^^ - too big!
> 
> 
> The real results is:
> 
> > raidtest test -d /dev/raid3/g3 -n 10
> Read 50000 requests from raidtest.data.
> Number of READ requests: 50000.
> Number of WRITE requests: 0.
> Number of bytes to transmit: 3316146176.
> Number of processes: 10.
> Bytes per second: 11398078
> Requests per second: 171
> 
> What is wrong?
> 
> How to run raidtest correctly on /dev/zvol/tank/vol ?

Ok. Here it how it works. ZFS has this COW model. It doesn't preallocate
space. When you read blocks you never written, it won't touch the disks,
but will just return zeros.

To properly test read performance, you first need to write, so you
should first run raidtest with -w flag, then zpool export/import your
pool to remove cache and then retest with or without -r flag.

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd at FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-geom/attachments/20070921/6531d58a/attachment.pgp


More information about the freebsd-geom mailing list