Slow Sync speed with Android client

Hi,

I’ve been researching this issue for a day or 2 and I’ve seen endless posts from people not understanding relaying and not providing any examples of the issue so I’m going to try not to do that and provide all the examples I can to increase my chances of fixing!

I’m running Syncthing as a docker container. It is only 1 of 3 very low resource hungry containers on an i5, 32GB host running Ubuntu Server V23.04. Nothing else runs on this host. I’m using the image provided by LinuxServer.io (syncthing - LinuxServer.io).

The docker container version I’m running is: V1.27.3-ls131 Build-date:- 2024-02-24T01:33:35+00:00

I have a share on my NAS for backing up my Pixel Phone. This share is shared out over NFS. The Ubuntu Server mounts this share at startup over NFS. The Syncthing container then maps to the folders within this mount point as so:

  syncthing:
    container_name: syncthing
    image: lscr.io/linuxserver/syncthing:latest
    restart: unless-stopped
    hostname: syncthing
    volumes:
      - ./syncthing/config:/config
      - /mnt/nfs/pixel_backups/Apps/Signal:/Signal-Backups
      - /mnt/nfs/pixel_backups/Apps/Aegis:/Aegis-Backups
      - /mnt/nfs/pixel_backups/Photos:/Photos-Backups
    ports:
      - "8007:8384"
      - "22000:22000/tcp"
      - "22000:22000/udp"
      - "21027:21027/udp"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC

I have disabled Compression and relaying on both ends.

My Pixel device is running the latest version of Syncthing. I have linked the Pixel Phone to the server via the scanning of the QR code.

The device showing in the server side console shows that the device is connected over: TCP WAN, port 22000, with compression off.

I have run iperf in a docker container so that I can confirm that it is not the docker layer that is slowing the transfer speed. Tests from the phone to the iperf Docker container shows the following results on the iperf3 docker container:

-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.100.237, port 52644
[  5] local 172.18.0.8 port 5201 connected to 192.168.100.237 port 52648
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   512 KBytes  4.19 Mbits/sec
[  5]   1.00-2.00   sec   512 KBytes  4.19 Mbits/sec
[  5]   2.00-3.00   sec   512 KBytes  4.19 Mbits/sec
[  5]   3.00-4.00   sec   512 KBytes  4.19 Mbits/sec
[  5]   4.00-5.00   sec   512 KBytes  4.19 Mbits/sec
[  5]   5.00-5.05   sec   128 KBytes  21.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-5.05   sec  2.62 MBytes  4.36 Mbits/sec                  receiver

So clearly I can get Mbps transfer speed with this setup.

However, what I am seeing is a download rate of: 568 KiB/s and upload of 33 B/s.

I cannot think, nor find any other posts, of what else I can try to resolve this issue.

If anyone has any suggestions, I’d happily take them as this tool is a million times better than having to build another Nextcloud server just to back up my phone to my NAS!

hi Callahan, good to see you are progressing with your syncthing setup.

I doubt i can help with your speed problem, but have you tried SMB ? NFS is usually limited to one channel for read+write operations (if i recall correctly). I have seen random NFS speed problems over my years of tinkering.

On a side note, did you know that if your NAS is a synology or qnap (others may also support, but i have no experience), you can install the app on the device directly, eliminating the NFS + UNBUNTU + docker part of your config. i have mine running on a syno DS214se (yep 10 years old with only 256mb ram), that is only a backup location, running syncthing (with over 20 devices connected regularly), SMB & NFS.

1 Like

Your iperf results are in Megabit per second, the download rate you show is in Kibibyte per second. 1 Megabit is around 122 Kibibyte, so that matches (ish)? I’m not sure what the “I can get Mbps transfer speed with this setup” refers to, 4 Mbit is not a lot and this test surely doesn’t support that statement:). I’d perform more tests first regarding this point.

I have a Raspberry Pi 5 here, running Syncthing in a docker container, and it can easily reach and maintain 11 Megabyte/s (from my Phone to the RPI5). Syncthing on docker as receive-only, otherwise everything kept as default.

1 Like

Note to self, pay attention to KB Vs Kb. You’re right, totally misread that, thanks for pointing it out!

As for the speed being low, that’s expected. The phone is connected to a wifi at the end of a S2S VPN. That site has a limited upload bandwidth so this speed actually makes sense.

So all in all, a non problem!

Thanks for everyone’s input!

1 Like

Hi Jim,

Thanks for your reply. NFS has lower overhead than SMB so I’ve always used it instead of SMB to try and get as much speed as I can from the mount points. Also easier to configure off the bat. I use policies on the NAS end to secure connections.

Eric P below, has pointed out my observation error. I need to lay off the late night tinkering. :slight_smile:

hi because syncthing on docker is not on same subnet has your phone on wifi, you must set some configuration on your phone.

same problem for me here : "Relay WAN" on local network with containerized app

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