Forgive me if this is the wrong place to ask… I’m using the F-Droid Syncthing-Fork but assume the underlying issue is pure Syncthing, or something obvious I’m missing.
I migrated phones and am trying to sync the files that didn’t get migrated, mostly camera folder.
The transfer is mind-bogglingly slow, it’s going at something like 0.5 MB/s (in 20 minutes of the syncing phase it’s transferred only about 600 MB). Both phones are using Wi-Fi, 5 GHz, talking to each other via home AP, normal internet speed tests on them are absurdly high. I was using SFTP to transfer the files just before trying this method and was getting 35 MB/s, and that was reading from one phone and writing to the other through a laptop.
Is this sort of performance normal? Thanks for any help.
Is this happening when syncing a large number of small files, possibly located in the same folder? If yes, then the slow speed is normal due to how Android handles file access.
Just to be sure, the devices are connected with one another directly without using a relay, right? You can verify this in the Syncthing Web GUI (available from the left slide-out menu in the app).
So it is a large number of files, the entire camera folder (22k files), so mostly ~5 MB photos and a few dozens of video files in the tens to hundreds of MBs.
The devices are not like ad hoc connected or using “wifi direct” (i don’t see that that works) via wi-fi, they’re going through the home hub, but they are on the same wifi network, and the web ui you mentioned lists the remote device as “TCP LAN” so I presume that means not via the internet.
When i watch the Syncthing reported network speeds upload will jump from 0 to ~18 MB/s then back to 0 while the download then jumps from 0 to 4 KB/s or something. Oof.
Yeah, so with this number of files, likely all located in the same one folder, it will take a while to sync them. This is just how Android 11 and newer works, there is no workaround. If instead of the 22k files you had just several video files of the same size, you would be getting the proper 35 MB/s sync speeds.
“TCP LAN” does mean local network, so the connection is not the culprit here.
I guess I’m still very confused about why an SFTP (and other server programs I’m using to read/write files over the network on Android) could achieve 30+MB/s but Syncthing couldn’t. It’s dealing with the same Android FS restrictions. I don’t know how SFTP is enumerating and reading the file contents to transmit, versus Syncthing, so maybe Syncthing is doing 10x the file reads or something, but I’m surprised I’m not seeing more posts about people unable to use the camera/photo syncing feature in Syncthing, given that at least with Syncthing-Form it’s an included feature. At this rate it would take me ~5 days to sync my camera folder, and that’s only if I never leave the house. I imagine it would actually take closer to 10 days if I used my phone normally.
Most people sync maybe a few hundred photos at most . If you search “android slow” on the forum, you will find quite a few topics on this specific problem though.
For most people (I guess, like me) the speed is sufficient once you’re through the initial sync. Because it will definitely be as fast as you can take pictures usually, so if you keep it running in the background you won’t even notice a delay.
Thanks, did you do the initial sync with Syncthing, or did you first sync your photos with something else?
I’ve been trying with various programs (e.g., SFTP server) but I keep running into problems (mostly reliability, some performance) with each method I try.
My method is Syncthing and patience. Just let it run in the background and relax. You can set the pull order on the remote device when you want to make sure newest pictures are transferred first.
What do I do if I already have it set up to sync and it has already synced some items? How do I get Syncthing to react like it never synced that folder before (once I copy the data)? I don’t know if it’s just deleting the sync folder in the UI, of it’s doing that and deleting any .stfolders or if I need to find/delete the Syncthing database? Or just do a rescan, which I thought I saw was an option somewhere?
For anyone else finding this post in the future, in my same boat, I discovered after trying and failing with 7-8 different solutions to copy the files (and preserve file/folder structure and modification times) the answer seems to be OTG USB storage device for the transfer. It seems to do sustained 42 MB/s, which makes the ~200 GB transfer in about 1.3 hours. Then I’ve got to transfer it from USB storage to the other device, so another 1.3 hours. And then I think I can sync and if I understand things correctly it will calculate the hashes for source and destination and I can tell if any corruption occurred over USB by seeing if the subsequent sync shows it had to copy over any files from source to destination.
Syncthing should just detect the newly added files, compare them with the other side, and if they are identical, not sync anything. Just to be extra sure, I’d set the folder to “Receive Only” first, and then once everything settles down, change it to “Send & Receive” again.
Here is what I would suggest to be the simplest solution. Use two USB cables to connect both phones to your computer at the same time and mount them as devices for Windows to be able to read and write files to and then you can simply use Windows File Explorer to copy your pictures from one phone to the other phone over a cable.
Then once that is done you can use syncthing to keep both devices in sync.
If that doesn’t work for you or is still slow, and I am guessing that this is a one-time transfer from a device that you’re no longer using to your new device correct?
I can give you the details in another note if you’re interested. There is in the Google Play app store a nice SFTP server. I have that running on my Android phone and I use it to transfer files wirelessly to my computer if I need to. It is fast, and good for moving data that you are not really intending to use the way the software was intended by continuously synchronizing two devices.
I just upgraded my phone to a new one and used this method to transfer hundreds of gigabytes of music and videos from my old phone to my new phone.
On windows, you can use an app like filezilla to transfer everything.
BUT, as others mentioned the smaller the files the longer the transfer will take. Larger files that transfer continuously move a little bit better than tons of little teeny weenie files.
Another option that you have if you have enough room on your phone is to zip all of your photos into one big zip file and then transfer that file to the other phone.
That will transfer all of your photos quicker than doing them one at a time.