Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Sep 2007 19:05:07 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        ?????? ??????? <softsearch@gmail.com>
Cc:        Pawel Jakub Dawidek <freebsd-geom@freebsd.org>
Subject:   Re: raidtest for zfs
Message-ID:  <20070921170506.GB9445@garage.freebsd.pl>
In-Reply-To: <dcf881c30709210933s6d92cb2dh830be87fb067037c@mail.gmail.com>
References:  <dcf881c30709210406j59603347vba8494eb5105932c@mail.gmail.com> <20070921143318.GC5690@garage.freebsd.pl> <dcf881c30709210933s6d92cb2dh830be87fb067037c@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--tjCHc7DPkfUGtrlw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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
>=20
>=20
>=20
> I get strange and fantastic results:
>=20
> > 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.
>=20
> > 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!
>=20
> > 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.
>=20
> > 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!
>=20
>=20
> The real results is:
>=20
> > 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
>=20
> What is wrong?
>=20
> 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.

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--tjCHc7DPkfUGtrlw
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFG8/nCForvXbEpPzQRAp9iAJ9iGXN7TtJRVuYhF/g8Sfr9HHxDkQCg1Qav
4y3k9cf5w4OQ3UnuX0fcxN0=
=a6vi
-----END PGP SIGNATURE-----

--tjCHc7DPkfUGtrlw--



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