[X2go-Dev] libssh, nagle, and performance issues
Oleksandr Shneyder
oleksandr.shneyder at obviously-nice.de
Mon Sep 19 09:51:16 CEST 2011
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.
>>
>> @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
> the rest of the keystrokes follow as if they've been buffered - John
>
> _______________________________________________
> X2go-Dev mailing list
> X2go-Dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/x2go-dev
I can imagine, that it can be problem in libssh on Windows. Can you try
to build a new libssh.dll on your system? However, I still cannot
reproduce your issue on my windows client :(
regards,
Alex
--
Oleksandr Shneyder
Dipl. Informatik
X2go Core Developer Team
email: oleksandr.shneyder at obviously-nice.de
web: www.obviously-nice.de
--> X2go - everywhere at home
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20110919/e77918ac/attachment.pgp>
More information about the x2go-dev
mailing list