On Jun 18, 12:12 pm, Hannes Reinecke <h...@suse.de> wrote:
> Well, the obvious solution here is to implement another transport module (eg
> iscsi_supersockets.c) much like it's done for iSER.
> The rest of the code should be sufficiently abstracted to handle it properly.
>
> There is a reason why it's called iscsi_tcp.c ...

So, we derived our own iscsi_ssocks.c module, and added the "ssocks"
transport to the iscsid. This works fine with the "iSCSI Enterprise
Target", which is able to use our "SuperSockets" without any
modification (just preloading our socket-library to the daemon).

However, we wonder about some performance numbers we get. We export a
RAM disk which locally gives 1300MB/s for a simple dd write test with
4k block size, no matter if we write synchronously ("oflag=sync") or
not.

Using our ssocks transport, we get 360MB/s when writing *not* in
synchronous mode (I hesitate to call this asynchronous), but only 60MB/
s when "oflag=sync" is used. The same test with 10GigE gives 300MB/s
and only 11MB/s, respectively.

We see *a lot* more small-message traffic (<64b bytes) from the target
to the initiator for synchronous mode (factor of 40) and twice the
small-message traffic from initiator to target.

Is this expected?

 Joachim

P.S.: We are using the default configuration, just changed
  MaxRecvDataSegmentLength 262144
  MaxXmitDataSegmentLength 262144
at the target which improved non-sync performance from 300 to 360MB/s
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~----------~----~----~----~------~----~------~--~---

Reply via email to