Very slow reads on iSCSI (Linux initiator) but fast writes
I was getting 30+ MBps on writes but around 1 MBps on reads on a Linux host with an iSCSI initiator against a Windows Server Target.
After too much googling and dead ends I found the solution was just fiddling with the readahead value, like this:
blockdev --setra 4096 /dev/sde
(assuming sde is your iSCSI device)
This just solved it. It seems like enabling jumbo frames (=MTU 9000) can help to improve speed, but it has to be supported by your switches and both NICs.
ifconfig eth1 mtu 9000
(assuming eth1 is your storage network)
I just had to write this down because it took me really long to sort out. This thread about slow reads was of great help.
I hope it helps you!