The problem I have is very poor read. When I benchmark my array with fio I get random reads of about 200MB/s and 1100IOPS and sequential reads of about 286MB/s and 21000IPS.
That doesn't seem right. Sequential is only 43% faster? What job file are giving to fio?
What do you get if you do something simpler, like:
time cat ~/$PGDATA/base/16402/*|wc -c
replacing 16402 with whatever your biggest database is.