Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 Feb 2007 13:28:05 -0500
From:      bashr <bashr@comcast.net>
To:        Fluffles <etc@fluffles.net>
Cc:        freebsd-geom@freebsd.org
Subject:   Re: What is gstripe ? -- benchmarks
Message-ID:  <45C4D435.4050307@comcast.net>
In-Reply-To: <45B169AB.3070103@fluffles.net>
References:  <20070113004728.GQ2616@obiwan.tataz.chchile.org>	<45A85F40.7050703@centtech.com>	<45A8B722.7020302@fluffles.net> <45B0EAA7.7020609@comcast.net> <45B169AB.3070103@fluffles.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Fluffles wrote:
> 
> Overall i sugest using a stripesize of 128KB of bigger. This way you can
> be sure that a single I/O request (maximum of 128KB on FreeBSD; MAXPHYS)
> will 'fit' into one stripeblock and thus can be handled by one disk in
> the RAID array. If you use 64KB stripesize and you read 65KB or 100KB,
> two physical disks must be used to handle the request; this will degrade
> performance.
> 
> Misalignment, often caused by using default partitioning, can also
> degrade performance. To counteract this, use manual disklabeling with
> the same offset (or multiple) as the stripesize, use Dangerously
> Dedicated mode, or simply select a stripesize of 256KB or even bigger.
> 

Thank you, that is very helpful.  Here is what happened:
A gmirror volume, gm0s2, consisted of two gstripe volumes, st0s1 and 
st1s1. The stripe st0s1 consisted of ad6s3 and ad8s3 while st1s1 
consisted of ad2s3 and ad4s3.  Disk ad2 is UDMA133.  The others are 
SATA150.  Both stripes were configure with a stripe size of 4k and an 
offset of 16.

I took st1s1 out of the gmirror and reconfigured it with an offset and 
stripesize of 131072.  Then ran iozone for file and record sizes up to 
32M to compare st0s1 and st1s1.  The numbers below are the ratios of the 
throughput for 128k stripe size to throughput for 4k stripesize.

Writing 64k files with 4k records: 1.08
16M w/ 4k: 3.22
32M w/ 16M: 3.72

Reading 64k files 4k records: 1.02
16M w/ 4k: 1.03
32M w/ 16M: 1.01

Then I reconfigured st0s1 with 128k offset and stripesize as well, and 
put both gstripe volumes in a gmirror.  The numbers below are the ratios 
of throughput for the mirrored gstripe volumes to the throughput for 
unmirrored -- both with 128k offset and stripesize.

Writing 64k files with 4k records: 0.98
16M w/ 4k: 0.55
32M w/ 16M: 0.5

Reading 64k files with 4k records: 0.97
16M w/ 4k: 1.01
32M w/ 16M: 1.07




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