raidtest for zfs
Michael Monashev
softsearch at gmail.com
Fri Sep 21 12:58:40 PDT 2007
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
More information about the freebsd-geom
mailing list