Terribly slow local backup to USB drive

I know there are many posts about slow backups but no real solution.
I am on a MacMini backing up to a directly attached USB drive, Seagate Backup Plus Hub.
MacMini is running El Capitan and Duplicati is 2.0.3.3_beta_2018-04-02.

Upload speeds are around 2.5KB/s (yes kilobytes). I am using the default upload settings and have encryption turned on. I changed the upload volume size from 50 to 250 MB but this did not help.

If you create a test backup job similar to the USB one but make a local disk folder (not USB based) be the destination do your times improve?

Of course this is not a fix, just a test to try and confirm the USB drive isn’t the source of the performance problem.

I did some non-scientific performance tests.
Mac Mini running El Capitan,
Duplicati 2.0.3.3_beta_2018-04-02,
MonoFramework-MDK-5.10.1.47,
Destination: Seagate Backup Plus Hub attached via USB3 port. Blackmagic Speed test reports read/write speed of 160 MB/s.
Internal MacMini disk reports read/write speed of 85 MB/s.
Backup set consists of 4 large movie files (total of 5.6 GB) and 100 photos (total of 230 MB).

Backup1: Seagate, Encrypted, Upload volume 50 MB – backup speed 9.4 MB/s
Backup2: Seagate, Encrypted, Upload volume 250 MB – backup speed 9.9 MB/s
Backup3: Seagate, Encrypted, Upload volume 500 MB – backup speed 9.4 MB/s
Backup4: Seagate, not encrypted, Upload volume 50 MB – backup speed 13.3 MB/s
Backup5: Seagate, Encrypted, Upload volume 50 MB, disable streaming transfer – backup speed 9.6 MB/s
Backup6: Seagate, Encrypted, Upload volume 50 MB, disable streaming transfer, use move-for-put – backup speed 9.1 MB/s
Backup7: internal MacMini drive, Encrypted, Upload volume 50 MB – backup speed 9.4 MB/s

Based on these limited tests, the only significant speed improvement can be achieved by turning off encryption. The USB-attached drive is as fast as the internal one.

However, looking at my real life large backups, which are in the 200-400 GB range, I can achieve only about 2.4 MB/s in a best case scenario. So Duplicati seems to struggle with anything that large. Also, Duplicati started behaving very weird with this large backups, like sometimes getting stuck, running very slowly, or overheating the CPU due to 800% usage.

Further, even with less than 1% CPU usage of mono per Activity Monitor, the MacMini runs very sluggish during backup operation, opening windows or apps takes a long time and other software is slowed down. I wonder whether the code is just not optimized for Macs.

I suspect (but could be wrong) that there’s very little OS specific optimization anywhere in the code as mono is supposed to take care of that sort of thing automatically (for MacOS and Linux).

Encryption, along with hashing and compression, are known potential bottlenecks (depending on system specs). The latest canary (2.0.3.6) includes some new multi-threading options to help address those areas - but it also introduced some slowdowns so if you were interested in testing I’d suggest you wait until the next release.

Is your Mac sluggish for the entire backup or only certain parts? There are a few parameters to lower CPU and disk IO usage, but generally cutting back on those will also cause the backup to run slower which seems a bit counter to your goal.