Re: Performance issue with 2.6 md raid0

From: Neil Brown
Date: Thu Feb 05 2004 - 21:36:36 EST


On Friday February 6, piggin@xxxxxxxxxxxxxxx wrote:
>
>
> Mattias Wadenstein wrote:
>
> >On Fri, 6 Feb 2004, Nick Piggin wrote:
> >
> >
> >>Mattias Wadenstein wrote:
> >>
> >>
> >>>Greetings.
> >>>
> >>>While testing a file server to store a couple of TB in resonably large
> >>>files (>1G), I noticed an odd performance behaviour with the md raid0 in a
> >>>pristine 2.6.2 kernel as compared to a 2.4.24 kernel.
> >>>
> >>>When striping two md raid5:s, instead of going from about 160-200MB/s for
> >>>a single raid5 to 300M/s for the raid0 in 2.4.24, the 2.6.2 kernel gave
> >>>135M/s in single stream read performance.
> >>>
> >>Can you try booting with elevator=deadline please?
> >>
> >
> >Ok, then I get 253267 kB/s write and 153187 kB/s read from the raid0. A
> >bit better, but still nowhere near the 2.4.24 numbers.
> >
> >For a single raid5, 158028 kB/s write and 162944 kB/s read.
> >
> >
>
> Any idea what is holding back performance? Is it IO or CPU bound?
> Can you get a profile of each kernel while doing a read please?
>

Possibly the read-ahead size isn't getting set correctly.

What chunksize are you using on the raid0?
Are you free to rebuild the raid0 array?
If so, please rebuild it with a chunksize that is 2 or 4 times the
size of a raid5 stripe (i.e. raid5-chunksize * (raid5-drives - 1) ).

If not, can you change:

if (mddev->queue->backing_dev_info.ra_pages < stripe)
mddev->queue->backing_dev_info.ra_pages = stripe;

at about line 327 of drives/md/raid1.c to something like:

mddev->queue->backing_dev_info.ra_pages = stripe * 32;

or whatever is needed to make ra_pages big enough to gold a couple of
raid5 stripes.

Thanks,
NeilBrown

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/