Can you try different IO schedulers
echo noop > /sys/block/sdXYZ/queue/scheduler
And for your IO test what are you using and what IO sizes are used? For
a good throughput you want lots of IO (around the queue depth of the
target which is probably around 128 or 256) and larger IOs (around 64 or
128K).
>
> Another question related with this, is that one of my cards is a
> Broadcom NetXtremm II BMC5708S wich supports iSCSI. Although some man
> pages talk about a bnx2i transport, I haven't found any kernel module
> for this. Could I use this transport? How? Should it improves
> performance?
>
You cannot use this transport with the upstream open-iscsi tools. The
2.6.31 kernel will have a bnx2i driver for that card, but you will still
need a special broadcom daemon to use the offload capabilites of the
card. Broadcom and other offload guys like Chelsio are working on
merging a common daemon/lib into the open-iscsi package right now.
I will let the broadcom guys talk about perf more because I do not have
any numbers handy. From my testing I have seen it performs well with
smaller IOs (less than 32K) and iscsi_tcp does not. With larger IOs and
lots of them the throughput seems to the be same (at least with a 1 gig
network), but the braodcom cpu usage is much less. iscsi_tcp has a xmit
thread which can take up almost 100% of the cpu at times, but broadcom
does not have that thread since it does the same operations in hardware.
That should be removed now. It got in there by accident. At one point
Broadcom was hoping that you could just use the normal netdev tools for
network setup, and so for iscsi setup you could just tell it to use
bnx2i. It did not work out, so we have to set params like the ip address.