Discussion:
Svn.exe for windows very slow on high ping connections
Charles Alexander
2017-01-14 03:49:26 UTC
Permalink
I'm using svn.exe (1.9.5), connecting through svn+ssh using Plink.

For a nearby DigitalOcean server (in New York, 60ms ping), I get checkouts
and commits at hundreds of KB/s. But I am collaborating with someone from
Australia and he was getting really slow checkouts and commits to the
server.

After lots of troubleshooting, I couldn't find anything that would speed it
up for him. I tried making a digital ocean server in Singapore to see if
it would be fast for him, and still be fast for me. While it is faster for
him, I ended up seeing the same exact poor speeds he was seeing.

The Singapore test server has a 280ms ping for me. My checkouts go at
almost exactly 60KB/s.

However, if I checkout from a linux VM on my same machine, through the same
internet, using the linux svn client, I get hundreds of KB/s even to
Singapore.

Worried it might be an issue with Plink/PuTTY, I tried copying a large file
with PuTTY's pscp.exe, and it goes at around 3400 KB/s, without compression.


Anyone have any ideas on what could be causing the slow down? A checkout
of the same exact repository from the New York server goes around ten times
faster. And a checkout from a linux VM on the same desktop I am running
svn.exe from went about the same, even to the Singapore server. Everything
also goes slow when I use TortoiseSVN and not the commandline.

Let me know if there is any more information I can provide to help track
this down.

Thanks,
Charles Alexander
Charles Alexander
2017-01-14 03:56:53 UTC
Permalink
One other thing: I also tried with and without Nagle's algorithm in the
PuTTY profile.

On Fri, Jan 13, 2017 at 10:49 PM, Charles Alexander <
Post by Charles Alexander
I'm using svn.exe (1.9.5), connecting through svn+ssh using Plink.
For a nearby DigitalOcean server (in New York, 60ms ping), I get checkouts
and commits at hundreds of KB/s. But I am collaborating with someone from
Australia and he was getting really slow checkouts and commits to the
server.
After lots of troubleshooting, I couldn't find anything that would speed
it up for him. I tried making a digital ocean server in Singapore to see
if it would be fast for him, and still be fast for me. While it is faster
for him, I ended up seeing the same exact poor speeds he was seeing.
The Singapore test server has a 280ms ping for me. My checkouts go at
almost exactly 60KB/s.
However, if I checkout from a linux VM on my same machine, through the
same internet, using the linux svn client, I get hundreds of KB/s even to
Singapore.
Worried it might be an issue with Plink/PuTTY, I tried copying a large
file with PuTTY's pscp.exe, and it goes at around 3400 KB/s, without
compression.
Anyone have any ideas on what could be causing the slow down? A checkout
of the same exact repository from the New York server goes around ten times
faster. And a checkout from a linux VM on the same desktop I am running
svn.exe from went about the same, even to the Singapore server. Everything
also goes slow when I use TortoiseSVN and not the commandline.
Let me know if there is any more information I can provide to help track
this down.
Thanks,
Charles Alexander
Charles Alexander
2017-01-14 07:55:46 UTC
Permalink
I think I found the solution:

https://marci.blogs.balabit.com/2009/11/putty-performance/

PuTTY has a 16KB receive window unless you have a one way connection, then
it gets a 2MB one (and that's why I was able to run pscp.exe [PuTTY scp] at
full speed).

So the solution is to patch PuTTY to use a larger window on two-way
connections. With 250ms ping to Singapore, the receive window would only
get emptied four times a second, resulting in the ~60KB/s I was stuck with.
Post by Charles Alexander
One other thing: I also tried with and without Nagle's algorithm in the
PuTTY profile.
On Fri, Jan 13, 2017 at 10:49 PM, Charles Alexander <
Post by Charles Alexander
I'm using svn.exe (1.9.5), connecting through svn+ssh using Plink.
For a nearby DigitalOcean server (in New York, 60ms ping), I get
checkouts and commits at hundreds of KB/s. But I am collaborating with
someone from Australia and he was getting really slow checkouts and commits
to the server.
After lots of troubleshooting, I couldn't find anything that would speed
it up for him. I tried making a digital ocean server in Singapore to see
if it would be fast for him, and still be fast for me. While it is faster
for him, I ended up seeing the same exact poor speeds he was seeing.
The Singapore test server has a 280ms ping for me. My checkouts go at
almost exactly 60KB/s.
However, if I checkout from a linux VM on my same machine, through the
same internet, using the linux svn client, I get hundreds of KB/s even to
Singapore.
Worried it might be an issue with Plink/PuTTY, I tried copying a large
file with PuTTY's pscp.exe, and it goes at around 3400 KB/s, without
compression.
Anyone have any ideas on what could be causing the slow down? A checkout
of the same exact repository from the New York server goes around ten times
faster. And a checkout from a linux VM on the same desktop I am running
svn.exe from went about the same, even to the Singapore server. Everything
also goes slow when I use TortoiseSVN and not the commandline.
Let me know if there is any more information I can provide to help track
this down.
Thanks,
Charles Alexander
Loading...