NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: systat % busy and raidframe (Greg Troxel) writes:

>  Do people believe the %busy in 'systat vmstat'?


>  Does raidframe RAID-1 dispatch read operations to components in a
>  near-optimal way if say one of the disks is twice as fast as the
>  other?

The reads are dispatched to the drive with the shorter queue and
should alternate between disks for sequential reads when the queues
are same length.

However, the latter doesn't work all the time.

Just assume no effective queueing and a previous read (last_deq_sector)
from some place on the disk. Then start reading the raw disk from the
beginning, the dispatcher will prefer the other disk until you reach
the last_deq_sector offset.

For filesystem reads this has little impact, I think the readahead
logic will quickly start queuing multiple requests and then both
drives are kept busy.

if (dataQueueLength < mirrorQueueLength) {
        usemirror = 0;
} else
        if (mirrorQueueLength < dataQueueLength) {
                usemirror = 1;
        } else {
                /* queues are equal length. attempt
                 * cleverness. */
                if (SNUM_DIFF(dataQueue->last_deq_sector, data_pda->startSector)
                    <= SNUM_DIFF(mirrorQueue->last_deq_sector, 
mirror_pda->startSector)) {
                        usemirror = 0;
                } else {
                        usemirror = 1;

                                Michael van Elst
                                "A potential Snark may lurk in every tree."

Home | Main Index | Thread Index | Old Index