Concurrency

When using Amazon EC2 APIs, it is possible to find a variety of boundaries that need to be considered. We highlight some of them below:

If a boundary is crossed, the corresponding request will usually fail. Bacula Amazon EC2 Plugin is prepared to wait some amount of time and retry it, so it has a certain level of resiliency. However, it is crucial to plan an adequate strategy to backup all the elements without needing to reach any boundary on a regular basis. This means to control how many concurrent requests are done during the backup window.

A single job implements parallelism which can be reduced or increased if necessary, using the following parameter:

  • concurrent_threads which controls the number of simultaneous processes fetching and downloading data (EBS blocks). This can be reduced or increased to directly affect the concurrency level of a single job.

The recommended strategy to backup a new environment is to plan a step-by-step testing scenario before putting it into production, where the number of instances and the concurrency of the jobs are increased progressively. Other important point is the timing schedule as some boundaries are related to time-frames (number of request per amount of time). If you detect you reach boundaries when running all your backups during a single day of the week, try to increase the time window, and spread the load through it in order to achieve better performance results.

Note that from an architectural and AWS service point of view, you can also consider to:

See also

Go back to:

Go to:

Go back to the Best Practices article.

Go back to the Amazon EC2 plugin main page.

Go back to the main Dedicated Backup Solutions page.