cygrunsrv + sshd + rsync = 20 times too slow -- throttled?
Chris Roehrig
croehrig@house.org
Tue Aug 24 19:49:52 GMT 2021
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.
Thanks,
-- Chris
Windows 10 v2004 (64-bit)
CYGWIN_NT-10.0 .... 3.2.0(0.340/5/3) 2021-03-29 08:42 x86_64 Cygwin
rsync version 3.2.4dev protocol version 31
Linux Mint 20
More information about the Cygwin
mailing list