Here's my test in a nutshell: # ON WINDOWS: install Cygwin and enable cygsshd ssh-host-config -y # set up authorized keys, etc to make things easier
# LINUX: Create a 2GB random file on Linux: dd if=/dev/urandom of=/tmp/bigfile.bin bs=1M count=2000 # WINDOWS: rsync "pull" to cygwin LINUXHOST=mylinuxhost rsync -Pva $LINUXHOST:/tmp/bigfile.bin /tmp/ # 100MB/s full speed rm /tmp/bigfile.bin # LINUX: rsync "push" to cygwin (from Linux machine) WINHOST=mywindowshost rsync -Pva /tmp/bigfile.bin $WINHOST:/tmp/ # slow, dropping to 4MB/s I get the same results transferring the other direction (WIN -> LINUX): The Cygwin remote endpoint is always slow. On Tue Aug 24 2021, at 4:43 PM, Mark Geisert <m...@maxrnd.com> wrote: > Chris Roehrig wrote: >> I have a network of Windows, Linux and Mac machines and I use rsync to >> synchronize various directories between them. >> I'm trying to figure out why my rsync transfers are so slow (<4 MB/s) only >> when the remote endpoint is Cygwin rsync over sshd (with both a Linux or >> Cygwin rsync client). In all other scenarios, I get the full 100MB/s as >> expected from gigabit ethernet. This has been an ongoing problem for me for >> a couple of years over several Windows and Cygwin versions, and I'd like to >> try to fix it. >> If I run rsync --daemon --no-detach under mintty in the foreground on the >> remote Windows endpoint, I get the full 100 MB/s transfers, so it seems >> like it has something to do with rsync.exe running in the background under >> the cygrunsrv+sshd service (which was installed normally using >> ssh-host-config). >> If I do: >> pv /dev/zero | ssh $WINHOST "cat > /dev/null" >> or even >> pv /dev/urandom | ssh $WINHOST md5sum >> I also get the full 100 MB/s transfers, so it doesn't look like sshd itself >> is being throttled by bandwidth or CPU. >> The machines have less than 15% CPU utilization while transferring, with >> each of the 4 cores less than 30%, so it doesn't look to be CPU issue. >> In Task Manager, sshd.exe and rsync.exe seem to be running normally using >> only few percent CPU, and show Power Throttling=Disabled, Priority=Normal. >> Setting their Priority to High doesn't seem to change things. >> Looking in Resource Monitor on the remote endpoint, the network usage is >> pretty much a flat horizontal line at about 18 Mbps (2.5 MB/s), so it sure >> looks to me as if rsync is somehow being bandwidth-throttled when run in >> the background under cygsshd. >> It's almost as if rsync has an implicit --bwlimit override when it is run >> from cygrunsrv+sshd (I've tried --bwlimit=0 on the client which makes no >> difference). >> Any ideas? Not sure where to go from here. > > You're not the first to report this. I don't have any quick answer. But can > you give one or two simple examples of commands that give slow transfers in > your environment? Simple like your 'pv' examples, if possible, using > whatever method that works. > > ..mark > > -- > Problem reports: https://cygwin.com/problems.html > FAQ: https://cygwin.com/faq/ > Documentation: https://cygwin.com/docs.html > Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple