tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Where is the component queue depth actually used in the raidframe system?
On Wed, 13 Mar 2013 15:32:02 -0700
Brian Buhrow <buhrow%nfbcal.org@localhost> wrote:
> hello. What I'm seeing is that the underlying disks under
> both a raid1 set and a raid5 set are not seeing anymore than 8 active
> requests at once across the entire bus of disks. This leaves a lot
> of disk bandwidth unused, not to mention less than stellar disk
> performance. I see that RAIDOUTSTANDING is defined as 6 if not
> otherwise defined, and this suggests that this is the limiting
> factor, rather than the actual number of requests allowed to be sent
> to a component's queue.
Yes...
> Just to clarify my understanding of the
> comment in rf_netbsdkintf.c, the amount of memory required for each
> outstanding request is equal to either 2 or 3 times the total number
> of bytes in each stripe plus the incoming data request?
This is approximately the maximum memory needed, yes. Actual memory
used in a non-degraded situation would typically be much less.
Later...
Greg Oster
> On Mar 13, 12:11pm, Greg Oster wrote:
> } Subject: Re: Where is the component queue depth actually used in
> the raidf } On Wed, 13 Mar 2013 10:47:18 -0700
> } Brian Buhrow <buhrow%nfbcal.org@localhost> wrote:
> }
> } > Hello greg. In looking into a performance issue I'm
> having } > with some raid systems relative to their underlying disks,
> I became } > interested in seeing how the component queue depth
> affects the } > business of underlying disks. To my surprise, it
> looks as if the } > queue depth as defined in the raidx.conf file is
> never used. Is that } > really true? The chain looks like:
> raidctl(8) sets } > raidPtr->maxQueueDepth =
> cfgPtr->maxOutstandingDiskReqs; } > Then, in rf_netbsdkintf.c, we
> have: } > d_cfg->maxqdepth = raidPtr->maxQueueDepth;
> } > But I don't see where maxqdepth is ever used again.
> }
> } Heh... Congrats! I think you just found more 'leftovers' from when
> the } simulator bits were removed (before RAIDframe was imported to
> NetBSD). } In the simulation code maxQueueDepth was also assigned to
> } threadsPerDisk which was used to fire off multiple requests to the
> } simulated disk. In the current code you are correct that maxqdepth
> is } not used in any real meaningful way... Unfortunately, we can't
> just } rip it out without worrying about backward kernel-raidctl
> } compatibility :(
> }
> } When you set maxOutstandingDiskReqs you're really setting
> } maxOutstanding, and how that influences performance would be
> } interesting to find out :) Just be aware that the more requests you
> } allow to be outstanding the more kernel memory you'll need to have
> } available...
> }
> } Later...
> }
> } Greg Oster
> >-- End of excerpt from Greg Oster
>
Later...
Greg Oster
Home |
Main Index |
Thread Index |
Old Index