[CentOS] 3Ware 9550SX and latency/system responsiveness

Wed Oct 3 06:12:49 UTC 2007
Pasi Kärkkäinen <pasik at iki.fi>

On Tue, Oct 02, 2007 at 03:51:50PM -0400, Ross S. W. Walker wrote:
> Pasi Kärkkäinen wrote:
> > 
> > On Tue, Oct 02, 2007 at 09:39:09AM -0400, Ross S. W. Walker wrote:
> > > Simon Banton wrote:
> > > > 
> > > > At 12:30 +0200 2/10/07, matthias platzer wrote:
> > > > >
> > > > >What I did to work around them was basically switching 
> > to XFS for 
> > > > >everything except / (3ware say their cards are fast, but only on 
> > > > >XFS) AND using very low nr_requests for every blockdev 
> > on the 3ware 
> > > > >card.
> > > > 
> > > > Hi Matthias,
> > > > 
> > > > Thanks for this. In my CentOS 5 tests the nr_requests 
> > turned out by 
> > > > default to be 128, rather than the 8192 of CentOS 4.5. 
> > I'll have a go 
> > > > at reducing it still further.
> > > 
> > > Yes, the nr_requests should be a realistic reflection of what the
> > > card itself can handle. If too high you will see io_waits stack up
> > > high.
> > > 
> > > 64 or 128 are good numbers, rarely have I seen a card that 
> > can handle
> > > a depth larger then 128 (some older scsi cards did 256 I think).
> > > 
> > 
> > Hmm.. let's say you have a linux software md-raid array made of sata
> > drives.. what kind of nr_request values you should use for 
> > that for optimal
> > performance? 
> > 
> > Thanks!
> 
> Pasi,
> 
> Good to hear from you again.
> 
> I haven't done much testing with software RAID, but after googling
> around I have found that there truly is no 1 nr_requests setting
> that fits all pictures.
> 
> The nr_requests is the maximum number of requests that can be queued
> before the queue is unplugged and the perfect # of requests queued
> is a reflection of the workload and the hardware together. Also most
> system func unplug after each request, so it isn't such a big issue
> unless the system is under high load.
> 
> If the default 128 isn't working I would explore hardware or RAID
> configuration problems first before trying to tweak this setting.
> 
> The old nr_requests = 8192 was definitely too high.
> 

Thanks for the reply Ross :) You're quite active on many lists it seems.. 

I also understood there's no single correct value for nr_requests.. 

I wonder if there are any "guidelines" how to find the best value.. 
I guess monitoring io-wait and throughput should give the best value for
nr_requests?

-- Pasi