Slow transfer speeds between Windows and Linux over Tailscale

I know there are many slow speed posts, but I’ve followed those instructions and no difference.

I’ve installed Syncthing on my mother’s Windows machine. M intention is that her F drive get’s synced to my server, and my server is a ZFS machine running snapshots and secondary backups.

However, transfer speeds are painfully slow. I think the max it reached was 5MBps, but right now it’s sitting at 620KiB/s

Technical information

Mother’s machine:

  • Windows 10
  • F Drive is an NVMe drive.
  • 500Mbps/500Mbps fibre internet
  • located in the UK

Linux server:

  • Linux (Ubuntu 22.04 LTS)
  • Docker, but Syncthing is in ‘host’ mode
  • 16TB ZFS Mirror
  • 300Mb/300Mb fibre internet
  • Located East Coast USA

Both communicate via Tailscale. I’ve bound Syncthing to only use these links, and disabled other options. When I run iperf directly over Tailscale I get roughly 15Mbits/sec - When I tried with all connectivity options before, including relays, I also never saw this value go higher than 5Mb/s

I get the same speeds even when I changed to ‘Largest First’ to ensure I’d be transferring some 4-8GB files. It still takes forever.

I’ve run this now for 10 days and a total of 300GB has been transferred.

Any ideas as to what I can be checking?

I think latency could be a factor here. It might be worth to play with pullerMaxPendingKiB

1 Like

I’ve tried adjusting that to 131072 (128 MiB) and 65536 (64MiB) but I’m still getting the exact same speed. Now sitting at 615KiB/s using the 131072 value

btw just to add, I realize I was mixing units above…

The speed is just over 5Mb/s - regardless of setting. Iperf gives me 15Mb/s

During the iPerf test, which side was the client/server?

Have you also run a jitter test with iPerf to check connection quality? (Although the endpoints are on fiber and/or coax, the transatlantic portion of the trip could either be via undersea cables or satellite.)

Sometimes Tailscale’s NAT traversal and other techniques to establish a direct tunnel connection between two peers doesn’t work out, so then Tailscale drops back to using relays (default mode), which obviously would slow things down considerably.

Tried both directions, and even tried a bidir test. Always get 15Mb/s directly with iperf.

Tailscale shows direct connectivity, not relays. But this would be expected as the iperf test uses the same endpoints (albeit different port numbers)

Also to note, both my server and mother’s PCs are hardwired to their respective routers, and we both have fibre links.

I’ll need to test jitter tomorrow as I’m back in the US so would need to remote desktop on her PC

On a related note, I’ve been able to saturate every network link I’ve tried while using WireGuard and Tailscale (you may already be aware that Tailscale is built on top of WireGuard). At my workplace, I set up a WireGuard VPN behind a symmetric 1 Gbps fiber link, so WireGuard’s claim of being one of the fastest VPNs definitely seems warranted.

With iPerf maxing out at 15 Mbps, there’s definitely some heavy latency, jitter, and/or something else going on with the link.

Given the iPerf results, the use of relays was definitely a possibility. If you don’t mind sharing the iPerf output, it could be helpful (you can redact the CGNAT IP address Tailscale uses for each host).

Since both you and your mom have plenty of bandwidth to spare, to get at least somewhat closer to 15 Mbps, increase the number of connections (numConnections) Syncthing can make. It’s not a solution to the core speed issue, but it should (in theory) give a boost.

I did try adjusting that. I used 5, 10, 15, 20 - But alas I see no change :confused:

Managed to make a big dent in this. Didn’t realise I had to set NumConnections both sides. So called my mother up and walked her through changing it on her side. I’ve set it to 25 on both sides, and right now I’m seeing sustained 40Mbps - So while it’s still not saturating it, its at least 8 times faster than before so I’ll take it

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.