Your experience: Performance on low power devices (ARM, Atom, Apollo Lake, etc)

Hello everyone!

I’ve been a synching user for about 2 to 2 1/2 years now. I am running 2 synching setups in parallel. One to keep two laptops in sync (everything! Documents, images, music, etc.) and the other sync parts of my documents, images and music to a couple of Android devices. Central to my setup is an Odroid C2 with a 4TB HDD connected through an USB2 enclosure. The Odroid is an always on node. It is part of both synching instances. Rescanning folders has been set to a ridiculously high value (every 30days), as apart from synching, no other process is modifying these feels. Both instances are around 40GB and 20K files but this is likely to triple or quadruple soon.

Now, I am planning to replace this Odroid with something else in the near future. First of all to have the HDDs connected through SATA rather than USB (I am still surprised that I never ran into problems). But a bit more performance also cannot hurt :slight_smile:

So, I am wondering what route to go: A more modern ARM device with SATA (would love to try an ODROID N1) or Atom, Apollo Lake (or similar). I am interested in understanding what devices you are running and what performance can be expected from those.

I am interested to hear reports for everything with low power consumption/low heat dissipation, here are some examples that I had in mind:

  • RK3328 based devices
  • RK3399 based devices (Odroid N1, Firefly, Rockpro64)
  • Odroid XU4
  • J3455
  • J4205
  • N4200
  • N3150
  • Atoms
  • Other low power/low heat generating devices

In case the usage reports that synching sends contains that information and can be viewed somewhere, that could also be quite helpful. Until someone can comment on that, I would love to hear your story…

If you want to report something, it would be awesome, if you could include:

  1. the benchmark that synching runs on startup
  2. „observed experiences“ when transferring larger amount of files or large files
  3. what’s the device (architecture, cpu, mem)
  4. What disk was used to measure and how is it connected (e.g. Samsung EVO 840 through SATA, 3,5“ 2Tb Samsung USB2, …)

Would love to hear your 2 cents, Seb

Odroid C2

  1. Benchmark

May 25 22:13:14 odroid64 syncthing[21296]: [MYID1] INFO: syncthing v0.14.26 “Dysprosium Dragonfly” (go1.8 linux-arm64) jenkins@build.syncthing.net 2017-03-23 11:04:35 UTC May 25 22:13:15 odroid64 syncthing[21296]: [MYID1] INFO: Single thread SHA256 performance is 20 MB/s using crypto/sha256 (20 MB/s using minio/sha256-simd). May 25 22:13:16 odroid64 syncthing[21296]: [MYID1] INFO: Hashing performance with weak hash is 18.47 MB/s May 25 22:13:17 odroid64 syncthing[21296]: [MYID1] INFO: Hashing performance without weak hash is 19.80 MB/s

  1. Observed performance

Transferring a 4Gb Linux DVD image from a Core i5 workstation to the Odroid over Gigabit Ethernet ~15-17 MB/s

  1. Device:

Odroid C2, Amlogic ARM Cortex-A53(ARMv8) 1.5Ghz quad core, 2GB ram

  1. Disk

Western Digital Blue 4TB attached through USB2

Cubietruck

  1. Benchmark: syncthing v0.14.47 “Dysprosium Dragonfly” (go1.10.1 linux-arm) Single thread SHA256 performance is 10 MB/s using crypto/sha256 (10 MB/s using minio/sha256-simd). Hashing performance with rolling hash is 9.23 MB/s. Hashing performance without rolling hash is 9.88 MB/s.
  2. Observed performance: Well, with many files synced the performance is not very high. Main obstacle for the cubie is the (for today’s means) low performance of the CPU. Calculating all those hashes brings the two cores of this little machine to its limits, htop notes a load average of about 2 with nothing else but syncthing running. For my needs this is still OK, the Cubie’s only job is to be online 24/7 and do a one way sync from different machines onto its HDD. Plus once a days it will do a dirvish backup of the syncthing folders. Once the initial syncing has been done only changes in the synced folders need to be transmitted, which works almost instantly even on this machinelet. The cubie does this job well, if I had to build a new system however today I would of course head for something faster.
  3. Device: The Cubietruck is an ARM Cortex-A7 @1GHz dual core with 2GB RAM.
  4. Disk: Seagate ST4000VN000-1H4168, 4TB, attached to on-board SATA port.

Cheerz

Don

Thanks a lot for sharing. I do have a feeling that I should just shut up and take the performance the Odroid gives me. I slowly start to thing that it might not be as bad as I was thinking. SATA is nice thought, didn’t know the Cubie had one.

Update on the C2: From Core i5 running MacOS -> Odroid C2. (Folders are scanned on Source. Measured from accepting on the Odroid C2 through the Web interface)

  • 1 File 3793MB = 19.8 MB/s
  • 126 Files (each about 4MB) combined 517MB = 17.7MB/s
  • 9200 Files (pdf, word, excel, a ton of source code) combined 741MB = 2.6MB/s

Acer RL100

Managed to test another (low power device).

  1. Benchmark

INFO: Single thread SHA256 performance is 67 MB/s using minio/sha256-simd (67 MB/s using crypto/sha256). INFO: Hashing performance with rolling hash is 57.40 MB/s INFO: Hashing performance without rolling hash is 65.17 MB/s

  1. Observed performance

From Core i5 running MacOS -> Odroid C2. (Folders are scanned on Source. Measured from accepting on the Odroid C2 through the Web interface)

  • 1 File 3793MB = once ran 12MB/s, another time 21,1MB/s
  • 126 Files (each about 4MB) combined 517MB = 14.0MB/s
  • 9200 Files (pdf, word, excel, a ton of source code) combined 741MB = 0.56MB/s
  1. Device:

Acer RL100, AMD Neo K325, dual core AMD64 compatible @1.3Ghz, 2GB ram According to other reports uses between 20 & 30 Watts depending on load

  1. Disk

2,5" 500GB notebook drive attached through SATA

I think the limiting factor of the cubie is not its SATA connector but its (for todays small devices) very weak CPU. It’s just a dual core A20, so don’t expect any whooping thrust here. With syncthing it really has its burden calculating all those hashes.

For me this thingy is OK nevertheless, all it has to do is doing a one-way-sync from all my PCs and embedded systems onto its HDD. And it runs a hardlink based rsync/dirvish backup every night. This is my almost maintenance free, fully automated, on-the-fly, time-machine-like backup system that is capable of doing backups also over the internet for roaming laptops and android phones.

The system resides in an old, 1 height 5 1/4" external SCSI enclosure, it’s very small and probably was the best thing I could do regarding backups. And if I start getting afraid of reliability with just one HDD for the backups I’ll setup a second syncthing system that syncs on a second cubie or whatever. Maybe I’ll do that on my tvheadend video machine, it’s also powered 24/7…

Agree, probably the CPU.

btw: @bizarre87 shared some results of a ROCK64 (RK3328 based) here: Best cheap ARM board for Syncthing?. If I understand that correctly, it’s significantly faster than the Odroid C2. (I would assume that is due to the hardware support for hashing mostly).