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?



        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.
        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?

-thanks
-Brian
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




Home | Main Index | Thread Index | Old Index