Poor performance on ARM board

Hi.
After using Duplicati for my PC, I installed it on my NAS. (Cubieboard, → an ARM Linux box similar to Raspberry). I don’t need the cloud stuff, every now and then I want to plug in an external USB drive and start the backup, all locally.

The speed of the initial backup is terrible. Even after doing test-backups on the internal HDD, I come to a speed of ~1MB/s. When deactivating encryption and compression, I am at still lousy ~3.5 MB/s. In any way, both cores of the processor are fully under load.

As comparison, when I copy the folder I use for testing on the machine with cp command, this happens with ~20MB/s. local rsync copies with ~17MB/s

I tried putting the tmp folder to the internal HDD to avoid wearing the SD card (and removing a possible bottleneck here), did not make it better. Also playing with chunk size or compression level did not change much.

Who has experience with duplicati on ARM boards? Are these speeds normal? Can I find the bottleneck?
Or ist this just a side effect of mono.

regards,
exae

Hi.

To add some more comparison. I just tried Borg Backup on the same system with the same test-data. I don’t like to use it since Duplicati is way more user friendly, but I wanted to have a comparison.
Standard settings (encryption + compression): 6,2 MB/s
fast settings (no crypt and no compression): 9,7 MB/s

So again, is there any way to improve performance in Duplicati, or is mono eating so much ressources?

I don’t have an answer about duplicati. But have you thought about encrypting your storage drive (luks) - at least that may reduce resources used by duplicati?

Thanks for the hint. But as said, without any crypt and compression, I come to 3.5 MB/s which is not amazing as well. And luks will use ressources as well, which will degrade speed again.

I think I’ll have to rsync the source to a “normal” PC first, and then do a fully-local duplicati backup from here.

My experience is that ARM boards typically struggle on these. I used to run Crashplan on a Raspberry Pi and ran into similar bottlenecks. Crashplan was Java based, Duplicati is .NET based. Either way, .NET on a budget ARM is going to be slow. If you’re maxing out the cores, there is nothing more you can do.

I personally went for an x86 UDOO board. It’s not super cheap like the ARM boards, but its speed suffices for my 1 TB backup.

Also, you are smart to move the tmp folder to a HDD and not an SD.

1 Like