There is a bug / feature in LVM whereby it sets it's default 'readahead' to 512 regards of the underlying medium. This means with fast disks / arrays you can easily end up getting between a half and a tenth of your potential performance!
How to fix;
lvchange -r <new size> /dev/<vg>/<lv>
New size is typically going to bg 4096 and up.
Try;
blockdev --report
To see what the read-ahead is on the underlying block device (i.e. whatever your VG is sitting on) and use that as an initial value. I just managed to pump the throughput in one of my arrays (for LVM's) from 120Mb/sec to 579Mb/sec ..
