Hi, I've done some tests and looks like open-iscsi doesn't support full duplex speed on bidirectional data transfers from a single drive.
My test is simple: 2 dd's doing big transfers in parallel over 1 GbE link from a ramdisk or nullio iSCSI device. One dd is reading and another one is writing. I'm watching throughput using vmstat. When any of the dd's working alone, I have full single direction link utilization (~120 MB/s) in both directions, but when both transfers working in parallel, throughput on any of them immediately drops in 2 times to 55-60 MB/s (sum is the same 120 MB/s). For sure, I tested bidirectional possibility of a single TCP connection and it does provide near 2 times throughput increase (~200 MB/s). Interesting, that doing another direction transfer from the same device imported from another iSCSI target provides expected full duplex 2x aggregate throughput increase. I tried several iSCSI targets + I'm pretty confident that iSCSI-SCST is capable to provide full duplex transfers, but from some look on the open-iscsi code I can't see the serialization point in it. Looks like open-iscsi receives and sends data in different threads (the requester process and per connection iscsi_q_X workqueue correspondingly), so should be capable to have full duplex. Does anyone have idea what could be the serialization point preventing full duplex speed? Thanks, Vlad -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.
