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