transfer speed for many devices

Hi all, i have an question regarding connection speed. We are using syncthing in a hub and spoke setup to sync files from main HQ to currently 76 site offices (connected via VPN over satellite). We are using version 1.10.0 and 1.11.0. Main HQ site syncs 76 folders (one for each site) and one more folder for all sites (send only). There are not many changes on folder content.

The limiting factor for transfer speed is the satellite connection which is around 10kBit/s. Theoretically Syncthing should be able to sync all sites at full speed 10kB/s*76 sites = 760 kB/s.

What i see is, when connected only one site office and the all other are paused, the transferspeed is about 99 %. If all site offices are connnected, the speed for each siteoffice drops to 0 -1 Kb/s.

HDD performance, RAM or CPU seems not the issue here. The system sould be able to handle constant speed for all clients (760Kb/s). Is there an setting to allow all devices sync in parallel with full speed? Only thing i have seenn in the documentation is maxFolderConcurrency (set to -1 ) but there was no improvement.

Best regards Thomas

There are a number of rate limiting configs that by default limit the number of concurrent requests being served, to avoid the central machine being swamped. Since any given block request will take a long time to transfer you are probably seeing that a lot of connections are entirely idle due to requests being served for other connections.

Try increasing maxConcurrentIncomingRequestKiB on the central device to 524288 (512 MiB) or more, the default is 256 MiB. This directly affects RAM usage when a lot of clients want data.

Disable temp indexes on the folder on the receiving side – reduces index chatter which you can’t really afford on these slow links.

Try reducing pullerMaxPendingKiB on the folder on the receiving side, to 16384 (default is 32768) to reduce the number of outstanding requests each client makes, making it easier for the server side to be fair.

2 Likes

many thanks for the quick reply. I have startet with maxConcurrentIncomingRequestKiB = 1048576 Looks better now. Memory usage is now at 2,3 GB and there is more then enough available. The remote settings need more time to test. I think I do the changes with the next update rollout.

2 Likes

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