This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: scp/ssh between two cygwin installations very slow


Larry Hall wrote:
At 06:58 PM 4/25/2005, you wrote:

Christopher Faylor wrote:

On Mon, Apr 25, 2005 at 09:45:56PM +0200, Bernhard Ege wrote:


Bernhard Ege wrote:


I am trying to copy an 800MB file from my pc to my laptop. The pc has cygwin and cygwins sshd running and from the laptop I use the scp command to copy the file.

Result: 190kB/s with low (1-5%) cpu usage on both machines.

Expected result: at least 2-3MBps with somewhat higher cpuusage on both machines.

Doh. I completely forgot that in my .ssh/config I had ssh call a script using the ProxyCommand. That command is a shell script that detects which network I am connected to (company or my own) and uses a tunneling ssh command to the destination if on the company network or a direct connection using "connect" if on my own network.


The connect command is a fairly simple program that redirects stdin/stdout to a host:port. This way, I can either use a ssh to host:port if tunneling is required to connect to host:port if not.

The problem is that cygwin has a very low throughput using the script with the connect command. I guess it could be related to the slow pipe problem mentioned earlier (but was supposedly fixed).

I have tried without the ProxyCommand and the speed returned to an acceptable 1.5MBps.

I hope Cygwin can be fixed so the speed returns to normal :-)

Yep. We'll get right on fixing that problem where fairly simple programs which redirect stdin/stdout to a host:port cause reversions in behavior of the "slow pipe" problem which was supposedly fixed.

It was either that kind of reply or some other reply indicating what additional info is required. Obviously I would submit the required information, but I don't know what would be relevant.


Anyway, here is the link to connect.c:

http://www.taiyo.co.jp/~gotoh/ssh/connect.html



And just create script like ssh-connect.sh:

#!/bin/bash
connect $1 $2

And in .ssh/config add the script to a destination:

ProxyCommand ssh-connect.sh %h %p


scp'in from the host which is reached through connect has its speed severely reduced.


It may be the problem with connect itself, but I am not sure how to test that.



Seems like something is going on with the compiled version of connect that
you pointed to. If I try what you mentioned above with the precompiled version, it is dreadfully slow for me as well (at least several orders of magnitude slower). Building a local one from source with Cygwin was allot better, though still slower than without it (by 4 to 5 times). You might want to try a local build if you need to rely on connect. It's allot better
than the alternative.

The one I tried _was_ the freshly compiled (by my self) version. I did not try the precompiled version. The slowdown you experience (4-5 times) approximately matches the slowdown I see as well.


Connect.c is probably not quite cygwin friendly yet (or the other way around), but I haven't found any alternative (though I haven't looked very hard, only mildly hard ;-).

However, the job connect has to do seems simple enough:

Establish connection in host:port, create 2 threads (or 1 more), one thread reading from standard in and output on socket out and one thread to read from socket and write to standard out. connect handles a few protocols, but for this to work, data should just be passed right through, i.e. no protocol handling necessary.

Bernhard

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]