Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Sep 2007 23:58:02 +0400
From:      Michael Monashev <softsearch@gmail.com>
To:        Pawel Jakub Dawidek <freebsd-geom@freebsd.org>
Subject:   Re[2]: raidtest for zfs
Message-ID:  <1310567292.20070921235802@gmail.com>
In-Reply-To: <20070921170506.GB9445@garage.freebsd.pl>
References:  <dcf881c30709210406j59603347vba8494eb5105932c@mail.gmail.com> <20070921143318.GC5690@garage.freebsd.pl> <dcf881c30709210933s6d92cb2dh830be87fb067037c@mail.gmail.com> <20070921170506.GB9445@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello, Pawel.

>> > > 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.

I run:

> raidtest test -d /dev/zvol/tank/vol -n 10 -w
Read 50000 requests from raidtest.data.
Number of READ requests: 0.
Number of WRITE requests: 50000.
Number of bytes to transmit: 3281546240.
Number of processes: 10.
Bytes per second: 120195634
Requests per second: 1831
> zpool export tank
> zpool import tank
> raidtest test -d /dev/zvol/tank/vol -n 10 -r
Read 50000 requests from raidtest.data.
Number of READ requests: 50000.
Number of WRITE requests: 0.
Number of bytes to transmit: 3281546240.
Number of processes: 10.
Bytes per second: 69264127
Requests per second: 1055

Results seems too strange again. How to turn off zfs cache completely?

FreeBSD 7.0-CURRENT amd64

--
Michael




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1310567292.20070921235802>