Skip to content

Borg2 incremental backup is really slow on big folders #8955

@Oygron

Description

@Oygron

Hi,

I’m testing Borg2 to benchmark how it performs compared to Borg1.4 on my Nexcloud server, containing 1TB of data.

In Borg 1.4.1, it takes about 2 minutes to update a backup (with very limited changes in the files).

In Borg 2.0.0b18 and 2.0.0b17 (did not have the time to test on the previous ones), it takes about 1h30 to update a backup (with very limited changes in the files).

Here are some infos that might be relevant for this:

  • I’m backuping from a virtual machine (debian bookworm), to an external USB drive, plugged on the host machine (proxmox, debian bookworm), all on the same physical machine.
  • The virtual machine has an ext4 file system, and the external drive plugged on the host machine has a btrfs file system.
  • The initial data size is 1TB, and the final archive weights 800GB, same size for all three tests. The update does not change the size of the final archive (as expected).
  • There is a total of 900k files in the initial folder that is backuped
  • Backuped data is mostly pictures (between 1 and 10MB by files), lots of really small files (previews, code, config…), and a couple of big files (~10GB each).

Here are the commands and exact durations for each version of Borg:

  • Borg 1.4.1 (borg-linux-glibc231)
    • borg init --encryption repokey-blake2 ssh://_user_@_host-ip_:22/media/backup/borg
    • time borg create ssh://_user_@_host-ip_:22/media/backup/borg::init /var/www
      • real 173m19.091s
      • user 109m37.745s
      • sys 29m43.105s
      • final size: 803GB
    • time borg create ssh://_user_@_host-ip_:22/media/backup/borg::update /var/www
      • real 2m42.333s
      • user 2m12.602s
      • sys 0m21.980s
  • Borg 2.0.0b18 (borg-linux-glibc236)
    • borg -r ssh://_user_@_host-ip_:22//media/backup/borg repo-create --encryption=repokey-aes-ocb
    • time borg -r ssh://_user_@_host-ip_:22//media/backup/borg create init /var/www
      • real 159m14.203s
      • user 124m6.674s
      • sys 31m30.736s
      • final size: 802GB
    • time borg -r ssh://_user_@_host-ip_:22//media/backup/borg create update /var/www
      • real 87m35.450s
      • user 60m13.850s
      • sys 6m40.052s
    • I tried another update, approximately the same durations.
  • Borg 2.0.0b17
    • borg -r ssh://_user_@_host-ip_:22//media/backup/borg repo-create --encryption=repokey-aes-ocb
    • time borg -r ssh://_user_@_host-ip_:22//media/backup/borg create init /var/www
      • real 143m13.891s
      • user 110m46.665s
      • sys 30m48.363s
      • final size: 804GB
    • time borg -r ssh://_user_@_host-ip_:22//media/backup/borg create update /var/www
      • real 80m36.358s
      • user 50m45.848s
      • sys 7m20.617s

The VM has 2CPU cores and 10GB of RAM

The Host has 8CPU cores (i7-7700) and 32GB of RAM

Feel free to ask for any precision that might be interesting.

For more runs (including creating relevant logs), that will have to wait until the 21st of July as I’ll be on holidays next week

Thanks a lot for your incredibly useful work!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions