Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.

Notices

Welcome to LinuxQuestions.org, a friendly and active Linux Community.

You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!

Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.

If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.

Having a problem logging in? Please visit this page to clear all LQ-related cookies.

Introduction to Linux - A Hands on Guide

This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.

Doing large reads only, with a variety of MD chunk sizes and read block sizes, I continue to see:
A N disk RAID-0 array has about 85% of the speed of N*a component disk's speed. That's not great but sure there will be some overhead, so ok so far.

Also a 2 disk RAID-1, gets pretty much the same read performance as its components, also good.

But a 7 disk RAID-5 array has 50% of the read bandwidth of a 6 disk RAID-0 array. Is it checking bit-xoring even if it gets no errors from the disk? Everything is active with no recovery going on.

And an 8 element RAID-10 array (8 RAID-1 arrays, put into a RAID-0 array) also only does about 1/2 of the performance of a simple RAID-0 stripe made of the same mirror pieces. The RAID-10 is composed of mirrors on the same set of ssd's (e.g. mirror pairs are sda1+sdb2, sdb1+sdc2 ...sdh1+sda2). Is it doing some sort of locking so when it reads from the first mirror pair (the first chunk of the RAID-10 stripe) it locks the other mirror half, so sdb is now locked causing the concurrently issued read on sdb1 (the next chunk) to be serialized?).

If I test each mirror pair individually they each get the same ~350MB/s. If I pick 2 pairs that share a drive (e.g. sda1+sdb2 and sdb1+sdc2) and read from each concurrently, they also run as expected at about 350 each. But if I do all 8 concurrently, 4 run at 350 and 4 run at 170MB/s. So that is likely why RAID-10 is slow, but how is this concurrency slowing things down if its not some sort of shared drive serialization.

This is all on RHEL 5.5, but I don't think md is too different across distributions.

I would look past the OS and start thinking about the controller settings. For speed on any RAID array you should set the read/write policy to Write Through and Adaptive Read Ahead. You may also want to think about turning on caching in case of a crash...what hardware are you running on?