Subject: Re: Low AAC performance but only when tested through the file system
To: Bill Studenmund <wrstuden@netbsd.org>
From: Olaf Seibert <rhialto@polderland.nl>
List: current-users
Date: 12/02/2003 16:45:30
On Mon 01 Dec 2003 at 17:57:30 -0800, Bill Studenmund wrote:
> Date: Mon, 1 Dec 2003 17:57:30 -0800
> From: Bill Studenmund <wrstuden@netbsd.org>
> To: Olaf Seibert <rhialto@polderland.nl>
> Cc: port-i386@netbsd.org, current-users@netbsd.org
> Subject: Re: Low AAC performance but only when tested through the file system
> 
> On Mon, Dec 01, 2003 at 02:50:52AM +0100, Olaf Seibert wrote:
> > On Sun 30 Nov 2003 at 15:07:33 -0800, Bill Studenmund wrote:
> > > What's your stripe depth? For optimal performance, you want it to be 16k.  
> > > The file system will do 64k i/o's. With 4 data drives & a 16k stripe
> > > depth, a 64k i/o (on a 64k boundary) will hit all 4 drives at once.
> > 
> > It's the default 64k. In the previous hardware I tried 16k also but it
> > made no difference, so I never tried it on this one.
> 
> With a stripe depth of 64k (stripe width of 256k) and 64k i/os you will   
> get poor performance. If you are performing random i/o, each of those 64k 
> writes means READING 3 * 64k = 192k then writing 128k.
> 
> Assuming the stripe depth really is 64k, each write by the OS will turn 
> into a read/modify/write operation in the RAID card. You'll be getting 
> worse performance than if you just used one drive.

Isn't that simply always the case? I'm not sure how write size and
stripe size influence this unless the RAID controller is exceedingly
stupid and re-creading the parity for the whole stripe if only a single
sector of it changes. And I've got the write cache turned on so it
should delay writing a bit until it has an optimal quantity to write
anyway.

Of course bonnie++ does it tests through the file system so even it
sequential writes are not necessarily sequential on the disk. But since
the partition was almost empty, most of it should really be sequential.

> I think you want to try playing with RAID tuning.

I plan to do so, indeed. I am sure there will be a performance
difference. But I can't believe it would make a difference between 4 and
(say) 40 M/s. There must be more to it than that.

Anyway, I just thought of an interesting test: I'm going to "rip out"
the hot spare, make it into a separate volume (if it can, I assume so),
and before backing up the current NetBSD situation to that single disk
I'll test the speed on that. If that is OK, I'll know there is some
issue with the RAID striping or controller implementation or something
like that. If it is also bad, the issue must be with the communication
between controller and computer, either due to hardware issues or an
inefficient driver. Does that sound logical?

> Bill

Cheers,
-Olaf.
-- 
___ Olaf 'Rhialto' Seibert - rhialto@       -- "What good is a Ring of Power
\X/ polderland.nl            -- if you're unable...to Speak." - Agent Elrond