Problem with working with a cluster of multiple devices

Very often (almost always) my mobile devices cannot connect to other devices. There are 4 constantly running servers in my cluster (3 encrypted and 1 normal). I’ve been trying to find a specific problem for a very long time and came up with the following results:

2022-10-11 00:01:16 Listen (BEP/tcp): connect from
2022-10-11 00:02:00 Established secure connection to ZTHGQKB-GOUDEBZ-SGN6ZNL-JL5AW7W-HDQPZ6A-M4XBSBF-SV7QKUG-2VSXAAE at TLS_CHACHA20_POLY1305_SHA256

The connection is established in 44 seconds!

This is due to the simultaneous connection with 4 devices and the size of the folders (on a mobile device: 8 folders, 23 directories, 470 files, 6.25 gigabytes). If you leave 1 small folder, then the problem disappears. If you connect not at the same time, but in turn, then the problem disappears.

Apparently, the problem is very high CPU usage. After the connection, intensive work takes place. Even my laptop loads the processor at 100% for 40 seconds when connected to 3 encrypted devices (17 folders, 2315 directories, 51731 files, 533 gigabytes)

What can we do about it?

Not really an answer, but I’ve got a feeling that this will have something to do with the large number of encrypted folders that you’ve got out there. What are the hardware specs of the devices involved?

Take a CPU profile. But yes, initialising encrypted folders for a new connection involves some key generation which I guess can add up if there are many or the device is slow.

My encrypted devices:

But it seems that the problem is not in them, since they do not load CPU and do not deal with cryptography.

Most of the tests I run on a tablet: Samsung Galaxy Tab A 10.5 (2018), Android 10, Snapdragon 450 (14 nm), Octa-core 1.8 GHz Cortex-A53, 3GB RAM

and laptop: Debian 10, Intel Core i7-3610QM, 16GB RAM, SSD

The laptop loads the processor for a very long time, what can we say about the tablet…

But the problem is also that new connections are opened while the old ones are not yet completed due to CPU load.

syncthing-cpu-android-arm-v1.21.0-150559.pprof (38.3 KB)

syncthing-cpu-linux-amd64-v1.22.0-145808.pprof (28.9 KB)

Yeah, time is spent in scrypt, generating folder keys from passwords. I guess lucky for you we’re using insecure low-round scrypt or this would take forever. That said, I’m not sure why this needs to happen for every connection, it seems it could happen on folder startup or thereabout.

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