Relay selection by download/upload rate


In my setup I have a two discovery and two relay and no p2p connections. One discovery/relay for work and another one my private. I don’t use public discovery/relay.

I sometimes experienced very slow connection speeds. Now again I tried to defeat the problem, rebooted everything possible, until I realized that the matter was in the availability of one or another relay.

The problem is that Syncthing takes the slower relay to those systems that are also connected to both discovery/relay, possibly by the ip-address. But both are only accessible through different VPN connections. If the VPN to the office is now up, the traffic goes through the working relay (~30KiB/s), if the VPN is disabled, the traffic goes through the personal one (1.5MiB/s).

It seems to me that it would be better to determine the route based on the actual connection speed.

Connection speed is a very flaky metric. With the public relay pool in mind, you’d notice that a few well connected nodes would gather all connections and would soon be overwhelmed by traffic.

But I don’t use public relay. For public relay you can hardcore a limit so that no one takes it to himself. Another possible solution is to give the options to set priorities for relays.

There is nothing you can use to control this.

Perhaps only have one relay that is actually fast?

This is a very specific issue to your setup, I don’t think this sort of feature would generally useful.

Also, feels like you should not need to use relays if you have VPN.

Thank you for reply.

The working relay synchronizes a bunch of computers and servers with each other, and I synchronize personal devices in my network, so one relay is not enough.

Relay is a cool service and allows you to keep ports closed, and not puzzle over how to configure a firewall on Android, Windows, Debian and the rest. And I’m paranoid, so…

The decision, of course, is yours, I wanted to show that in some setups Syncthing does not work very efficiently.

Configure specific devices to only be available on specific relays. The fact they are only on relay X, doesn’t mean they cannot connect to a device on relay Y, assuming that they cam discover each other.

Also, public relays have 1000s of connections, with sustained 100Mbit throughput, I can’t really see how having more of them helps. If you are saturating a single relay, you should really consider connecting directly.