On Mon, 2011-09-19 at 13:44 +0200, Oleksandr Shneyder wrote: > Am 19.09.2011 13:30, schrieb Mike Gabriel: > > Hi Alex, > > > > On Mo 19 Sep 2011 09:51:16 CEST Oleksandr Shneyder wrote: > > > >> Am 17.09.2011 03:39, schrieb John A. Sullivan III: > >>> On Fri, 2011-09-16 at 23:17 +0200, Mike Gabriel wrote: > >>>> Hi John, hi Alex, > >>>> > >>>> On Fr 16 Sep 2011 21:56:38 CEST "John A. Sullivan III" wrote: > >>>> > >>>>> Hello, all. Since moving to the newer clients using libssh, I've > >>>>> noticed what appears to be a performance degradation. It smells like > >>>>> Nagle coalescing packets, e.g., most of the screen will paint, then it > >>>>> will pause a moment, and then the rest will paint. Is there any > >>>>> chance > >>>>> we have neglected to disable Nagle when invoking libssh? > >>>>> > >>>>> This appears to have affected the SNMP over SSH project: > >>>>> http://books.google.com/books?id=S62is2vVoVgC&pg=PA29&lpg=PA29&dq=libssh > >>>>> > >>>>> +nagle&source=bl&ots=F8Iw-pvQxd&sig=f5dfy0K0ewzSZOhqzTJRSKsDKZ8&hl=en&ei=KppzTrCZD4LJgQeMxLzzDA&sa=X&oi=book_result&ct=result&resnum=1&sqi=2&ved=0CBwQ6AEwAA#v=onepage&q=libssh%20nagle&f=false > >>>>> > >>>>> > >>>>> This is in section 4.1. The difference was a latency of over 800ms to > >>>>> one of under 60ms. That seems to be about what I am seeing. There > >>>>> is a > >>>>> delay of roughly a second and then the rest of the screen comes > >>>>> through. > >>>>> Thanks - John > >>>> > >>>> Indeed the TCP_NODELAY (which means: turn Nagle off) is not set for > >>>> the ssh tunnel in X2goClient. It probably is for the SSH connection > >>>> itself, as the SNMP patch has been reported to libssh upstream and > >>>> their patch suggestion has been sensible. However, for the SSH tunnels > >>>> built up for X2go this TCP_NODELAY option does perhaps not get set. > >>>> > >>>> @Alex: would this patch fix that in x2goclient??? > >>>> > >>>> diff --git a/sshprocess.cpp b/sshprocess.cpp > >>>> index 9e72e8f..03ee9b6 100644 > >>>> --- a/sshprocess.cpp > >>>> +++ b/sshprocess.cpp > >>>> @@ -88,6 +88,7 @@ void SshProcess::tunnelLoop() > >>>> const char y=1; > >>>> #endif > >>>> setsockopt(serverSocket, SOL_SOCKET, SO_REUSEADDR,&y, > >>>> sizeof(int)); > >>>> + setsockopt(serverSocket, IPPROTO_TCP, TCP_NODELAY,&y, > >>>> sizeof(int)); > >>>> > >>>> address.sin_family=AF_INET; > >>>> address.sin_addr.s_addr=INADDR_ANY; > >> > >> I don't think that that can be helpful. This part of code is only for > >> reverse tunnel which is used for FS forwarding and Pulse Audio. > >> > > > > I took another close look at the code of sshProcess.cpp. The patch is > > applied to the method sshProcess::tunnelLoop. This method only gets > > execute in sshProcess::startTunnel. > > > > The call is: > > > > <quote> > > if (!reverse) > > tunnelLoop(); > > else > > { > > <blablabla> > > } > > </quote> > > > > So this makes me think that tunnelLoop() is not for reverse tunneling > > but for the graphics tunnel. > > > > Could you take another look please? > > > > Thanks, > > Mike > > hmmm, ok, seems you are right :) Can you apply this patch to source tree > and I'll try to build a windows binary tomorrow. > > regards, > Alex <snip> Hi, Alex. Are the Windows packages available anywhere to test? Thanks - John
_______________________________________________ X2go-Dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/x2go-dev
