Hans Kristian Rosbach <hk@xxxxxxxxxxx> wrote: > On Mon, 2005-01-17 at 17:46, Peter T. Breuer wrote: > > Interesting. How did you measure latency? Do you have a script you > > could post? > > It's part of another application we use internally at work. I'll check > to see wether part of it could be GPL'ed or similar. > > But it is also logical since for two requests in a row to sector and > sector +1, it will first seek disk1 and then disk2 when the second > request arrives. Atleast it was that way with my hack. It's not that logical. Readahead on the underlying devices should mean that sector+1 is read on BOTH drives. I'll tell you below why it "works". You want to avoid overlap of the readahead areas. That essentially means striping underneath in lumps equal to the readahead distance. > I was pondering maybe doing something like a virtual stripe array, such > that the data reads are logically alternated between the functioning It' not worth it - striping is only a means to an end, and the end is distribution of requests among the participating disks. The stripe idea works by using alternation in space as a distribution mechanism, but need you to deliver effectively random seeks to make it work! You can achieve the same distribution in other ways. The most obvious is simply rotating the requests round robin, as you are doing. This doesn't work because different sectors come from different drives - it means that all the drives will all pull the same areas into their caches, ditto the drivers for them into the block buffer cache, and thus you have a bigger lookahead cache plus some parellism and pipelining ... Try switching drives every 40KB instead (assuming RA is set to 40 KB). Peter - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html