Alike A3/V7 Documentation

Tuning

Memory and Scaling

The A3's storage processing backend, known as the data engine, scales its demands on resources according to the amount of RAM found at start-up.

The easiest way to tune the A3's potential for performance upward is to increase the memory provided to the A3 docker image. By default, your A3 does not ship with memory limits on your Docker container, meaning it will have as much memory available to use as memory free on the Docker host.

This is ideal for single-container deployments, which is how the A3 ships at factory. To change this behavior, please see docker

More memory will cause the data engine to allocate more resources to the following:

  1. Restore worker threads
  2. Simultaneous backup (munge) writer connections
  3. Backup (munge) block buffering
  4. Restore filesystem caching

More threads and larger caches do not translate to better performance in all cases. More threads and larger caches can be counterproductive, leading to "cache thrash".

But in environments with powerful storage that can sustain high throughputs for prolonged periods, increasing these pools will lead to more consistent, reliable, and smooth performance, especially for those environments that must run a high number of concurrent backup jobs simultaneously.

Internally, the A3 derives its thread counts from available memory and then derives various cache and connection levels from this thread count. This thread count is referred to as the "FUSE worker thread count" under Advanced Settings. By changing this setting, you will override Alike's default behavior which calculates the best thread count based on RAM. Choosing a custom setting for this IS EXTREMELY DANGEROUS and may cause your A3 to become unstable! Crashing or freezing could occur. Only change this setting if instructed to do so by support.

System Block Size

The A3 block size setting allows you to dial in your data deduplication and I/O performance. A smaller block size will offer more storage savings, but a larger block size may offer better performance. Since the A3 features global data deduplication, blocks are reused across all your backups, so choosing the right block size for your needs can make a big difference.

The A3 ships with a default block size of 2MB. This default offers a good compromise between scalability and deduplication, and is recommended for most installations. For larger environments that need to protect more than 10TB of data, selecting a larger block size can ensure your A3 scales well as your data set grows.

If throughput is a primary concern, some hardware may perform better on 4MB or even 8MB block sizes. But not all. Be sure to test your deployment if performance is a primary concern.

It is technically possible to change your block size after ADS creation, but not recommended. If you do so, your backups will behave like "full" backups, and your ADS size will swell in size until old backups with the old block size are purged out. Thus doing so is NOT SUPPORTED in production, and should only be used when conducting staging and testing of a prospective deployment. This option is available from the console under Advanced (6) -> A3 System Options (4) -> Change Block Size (9).

Journaling Databases

By default, Alike houses large journaling databases on your local installation disk by default. Be sure you have enough local disk space for these databases, as they can grow to several GB in size, depending on your data set.

If you are running your own Docker container, you can customize the location of these databases to optimize performance by using SSD or other low-latency disk. In the yaml file, look for the volume stanza and find "cache-dbs". Backing this volume appropriately can significantly boost metadata operations, such as purge, commit, and rebuild. See the Docker section for more information.

Instant Restore Storage and Performance

Like journaling databases above, Instant Restores utilize local installation disk by default as the disk that houses changed data to instant restores. The A3 only ships with 16GB of local storage. It is easy to fill this disk up! If you plan on insta-booting large VMs or VMs that need to write/change a lot of data, you will need to configure this storage carefully! See Docker for more information.

Delete Threads

By default, Alike uses 5 delete threads. Some environments may benefit from more delete threads, as these can compensate for various forms of storage latency. But too many threads can overwhelm your storage, so this number should be adjusted carefully, while monitoring the results.

Post-Backup Validation

The A3 ships with "medium" block validation, which is actually fairly light and only checks a small number of blocks from each backup. This is done as a sanity-check and can catch certain types of rare but serious problems with a network or storage configuration that would not otherwise be detected during the backup process itself.

By putting Alike into "heavy" or paranoid block check mode, all blocks will be checked before the backup completes.

Setting this to zero or "quick" disables all block validation is not recommended, as there is only trivial I/O savings be netted by doing so.