diff --git a/changelog/unreleased/issue-2162 b/changelog/unreleased/issue-2162 new file mode 100644 index 000000000..f242ea058 --- /dev/null +++ b/changelog/unreleased/issue-2162 @@ -0,0 +1,18 @@ +Enhancement: Adapt IO concurrency based on backend connections + +Many commands used hard-coded limits for the number of concurrent operations. +This prevented speed improvements by increasing the number of connections used +by a backend. + +These limits have been replaced by using the configured number of backend +connections instead. It can be controlled using the +`-o .connections=5` option. Commands will then automatically +scale their parallelism accordingly. + +To limit the number of CPU cores used by restic, you can set the environment +variable `GOMAXPROCS` accordingly. For example to use a single CPU core, use +`GOMAXPROCS=1`. + +https://github.com/restic/restic/issues/2162 +https://github.com/restic/restic/issues/1467 +https://github.com/restic/restic/pull/3611 diff --git a/doc/047_tuning_backup_parameters.rst b/doc/047_tuning_backup_parameters.rst index e63dc5f87..4f84b9c23 100644 --- a/doc/047_tuning_backup_parameters.rst +++ b/doc/047_tuning_backup_parameters.rst @@ -30,6 +30,15 @@ to increase the number of connections. Please be aware that this increases the r consumption of restic and that a too high connection count *will degrade performace*. +CPU Usage +========= + +By default, restic uses all available CPU cores. You can set the environment variable +`GOMAXPROCS` to limit the number of used CPU cores. For example to use a single CPU core, +use `GOMAXPROCS=1`. Limiting the number of usable CPU cores, can slightly reduce the memory +usage of restic. + + Compression ===========