[ Sunday, September 19, 1999 ] Glenn McGrath wrote:
> Should the maximum performance of raid0 be twice the speed of the slowest
> drive, or the agregate of the two drives speed ?
> What speeds are achievable practically?
Amdahl's Law :)
For separate IDE channels or SCSI, or any other situation where the
drives can be accessed at the same time, then your time for getting
two stripes (one each) is going to be the time to fetch one off the slower,
as by the time it finishes the faster one has already sent back its data
The same-ide-channel problem is that you don't get to do that... it's
one at a time, so you'll get something more like an average (harmonic
mean I'd guess... don't make me think :) of the two rates, as over time
you'll be getting data at slow rate, fast rate, slow rate, fast rate, etc
(and the fast rate parts go quickly, unfortunately, so you spend most
*time* at the slow rate :)
hence, for y KB stripes, 2 drives of x and nx KB/sec rates, you can get
the 2 stripes off of each drive in *times* of:
separate IDE channels or SCSI:
max(y/x,y/(nx)) = y/x (time for slower drive to get 1 stripe)
one IDE channels or SCSI:
(y/x)+(y/(nx)) = (ny+y)/nx = (n+1)y/nx = ((n+1)/n)y/x
Since we're talking 2y amounts of data in both cases, the rate is:
separate IDE channels or SCSI:
2y/(y/x)=2x (twice the rate of your slower drive)
one IDE channels or SCSI:
2y/((n+1)y/nx) = 2x * (n/n+1)
It's easy to note that the shared-IDE rate is *never* going to beat
that of SCSI or split channels, even if the faster drive is infinitely
fast. In the case where n=1 and both drives are the same speed, you get
2x*(1/2) or the speed of the slower drive, which makes sense since you're
effectively getting access to one instance of the drive at any one time.
In your case, I'd guess n=3, so 2x*(3/4)= (3/2)x, explaining your 50%
speed improvement over the slower drive.
*shrug* yeah, I know this analysis leaves out tons of factors, the
channel interfaces, UDMA (if that can overlap commands... dunno), yadda
yadda yadda... :)
James
--
Miscellaneous Engineer --- IBM Netfinity Performance Development