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 -~----------~----~----~----~------~----~------~--~---