Reading RAID 1 volumes can be slow because of the way reads are 
interleaved:

# dd if=/dev/rsd0c of=/dev/null bs=1m count=256
256+0 records in
256+0 records out
268435456 bytes transferred in 1.841 secs (145780529 bytes/sec)
# dd if=/dev/rsd1c of=/dev/null bs=1m count=256
256+0 records in
256+0 records out
268435456 bytes transferred in 1.774 secs (151248200 bytes/sec)
# dd if=/dev/rsd2c of=/dev/null bs=1m count=256
256+0 records in
256+0 records out
268435456 bytes transferred in 4.683 secs (57311236 bytes/sec)
# bioctl sd2
Volume      Status               Size Device  
softraid0 0 Online       491516657664 sd2     RAID1
          0 Online       491516657664 0:0.0   noencl <sd1d>
          1 Online       491516657664 0:1.0   noencl <sd0d>
# ^D

As a workaround I have produced this patch:

http://www.durlej.net/sr1.diff

Implementing split seeks might further improve read performance, 
especially as far as concurrent requests are concerned.

Regards,
Piotr

Reply via email to