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;
@John: could you get the latest sources of x2goclient from our Git:
git clone git://code.x2go.org/x2goclient.git
and run debuild -uc -us (plus fullfill build-deps before) on a Debian squeeze or above system and check if the patch fixes your delays???
Best+Thanks, Mike <snip> Hmm . . . I wonder if this explains why the Windows client performance is so much worse than Linux. I assumed it was an X to GDI translation issue but the symptoms I described in scrolling through Evolution mail are press several keystrokes and one actions, then a long pause, then
On Fri, 2011-09-16 at 23:17 +0200, Mike Gabriel wrote: the rest of the keystrokes follow as if they've been buffered - John