I’ve been happily using SyncThing for many years, to sync database backups from my cloud servers off to my backup server and development environment, but I’ve recently noticed that my bandwidth bills have been going through the roof - £900 last month. I drilled down into the AWS cost explorer, and can see that the costs are being incurred overnight when the backups are happening.
Questions -
Can I find stats within SyncThing that will show me how much data I’ve used and which servers they are syncing to?
If I have Database server A syncing with Backup server B and Development environment C, are B and C going to both download each file from A rather than exchanging blocks with each other? If I configure C to sync only with B and not with A, will that help? How badly will it hurt performance?
I have an ignore pattern on *.bak and *.trn files. My database backup drops a .bak file in my Syncthing folder, but it’s not compressed, so I think create a .zip file of it and delete the original, expecting Syncthing to sync the .zip file and not waste bandwidth on the .bak file. Is creating .bak and .zip files directly in the Syncthing folder a good idea, or should I create them elsewhere and then copy them in?
As long as you don’t restart syncthing, the “This Device” overview shows the total amount of bytes transferred and received since syncthing started, like this:
If you click on a specific Remote Device, syncthing also shows the amount of data transferred from/to that device in the current session (which resets when devices reconnect).
Depends on how you’ve set things up. If you have created a mesh (i.e. all devices are connected with each other), they’re supposed to share downloading blocks between them, but in my experience it doesn’t work reliably - expect about twice the traffic on A.
It can take a bit more time, since changes first have to flow to B before they can be forwarded to C. That doesn’t mean that the entire file has to be transferred first, as syncthing operates on chunks (“blocks”), not entire files, but still. It also causes more traffic on B, as it has to both receive and send the changes forward.
If you have ignored the files on the originating device, syncthing won’t sync them. Meaning the file will neither be hashed nor transfered anywhere.