raid 5 read performance

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

 



Neil hello
I am measuring read performance of two raid5 with 7 sata disks, chunk size 1MB.
when i set the stripe_cache_size to 4096 i get 240 MB/s. IO'ing from
the two raids ended with 270 MB/s.

i have added a code in make_request which passes the raid5 logic in
the case of read.

it looks like this :
static int make_request (request_queue_t *q, struct bio * bi)
{
.....
	if ( conf->raid5_bypass_read  &&  bio_data_dir(bi) == READ )
	{	
		new_sector = raid5_compute_sector(bi->bi_sector,
						  raid_disks,
						  data_disks,
						  &dd_idx,
						  &pd_idx,
						  conf);

		bi->bi_sector = new_sector;
		bi->bi_bdev =  conf->disks[dd_idx].rdev->bdev;
		//
		//	do some statics
		//
		disk_stat_inc(mddev->gendisk, ios[rw]);
		disk_stat_add(mddev->gendisk, sectors[rw], bio_sectors(bi));

		//
		// make upper level to the work for me
		//
		return 1;
	}
...
}

it increased the performance to 440 MB/s.

Question :
      What is the cost of not walking trough the raid5 code in the
case of READ ?
      if i add and error handling code will it be suffice ?

thank you
--
Raz
-
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

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux