Ahmmm... This thread is about Win7 performance issue. Not about WinXP. But the other's are right: You should test disabling the nagle algo.
But back to topic: My reproducer is sending 10.000 bytes with each message, so the nagle algo should not be the cause for the slow performance on Win7 as the test runs fine with WinXP. Just to exclude this possible cause... Could someone please respond to the initial issue in this thread, rather than getting offtopic *smile* br, Alex On Thu, 17 Jun 2010 09:07:40 +0200 (CEST), "Jens Reimann" <[email protected]> wrote: > I actually have and still am not sure what the cause is. > > I have an application that uses plain TCP Client/Server communication and > sends a lot of small messages trough a custom Codec which converts it to > IoBuffers. > > This all works fine on MacOS and Linux but on some (not all) Windows XP > machines there is a problem that data that passed through the protocol > codec does not get written to the socket. > > Actually I figured out that it has to do with the sockets send buffer > size. If Mina hits the sockets send buffer the socket seems not to be > triggered when then send buffer has room again. Since we do perform > periodical pings in our protocol the socket is triggered from this ping > and fills the send buffer again. This causes mina outbound buffer to be > slowly flushed to the sockets send buffer. > > Since I cannot reproduce it in an easy sample I did not post this up to > now. But it seems that others too have this problem. > > For the the workaround right now is to increase the sockets send buffer so > this "fixes" to problem for me a the moment. > > Jens Reimann > >> >> Hi, >> >> last time I had a kind of "bug-problem" i posted on this list. Then I was >> asked to create an JIRA issue. Now I created the issue upfront and want >> to >> discuss it here: >> >> I've written a kind of RMI replacement uses MINA for network >> communication >> layer that is also able to transfer files very fast (without reflection >> and >> complex serialisation stuff). One of my customers faced a performance >> problem as soon as the receiving application part is running on Win7. >> >> I tried to create an reproducer: >> First I wrote a small test application using Java IO that simply >> transfers >> 1.000.000 bytes of random data from a client to a server. That's very >> fast. >> It doesn't matter if I try on localhost, or from WinXP->Win7 oder >> Win7->WinXP. Even Linux->Win7 is fast. >> >> Then I wrote the same kind of application with mina. No additional codec, >> nothing complex. I just transfer 100 IoBuffers with 10.000 bytes each >> from >> A to B. >> If I run the application on WinXP via localhost, it's very fast. <1sec >> runtime. >> >> If I run client and server in Win7, it's f*cking slow. Takes >1min to >> complete. >> >> Please find attached the test application. >> Just extract and run: >> >> java -cp MINASocketTransfer.jar;./lib/* minasockettransfer.Client <IP or >> Hostname of Server> >> java -cp MINASocketTransfer.jar;./lib/* minasockettransfer.Server >> >> The lib folder contains 2.0.0M6 and 2.0.0RC1. To switch from the one to >> the other version, simple "move" the tailing "_" to exclude the specified >> lib from classpath. >> Java-Source files are included in the MINASocketTransfer.jar ... >> >> I tested it with 2.0.0M6 and 2.0.0RC1. It's reproducible with both >> versions. >> >> --> >> https://issues.apache.org/jira/secure/attachment/12447232/MINASocketTransfer.zip >> <-- >> >> Has anyone observed a similiar behavior with Win7? >> >> >> br, >> Alex >> >> >>
