Calculating 🤓Required Proxy Tasks 💪

  • 22 October 2020

Userlevel 7
Badge +6
  • On the path to Greatness

:hand_splayed: In my previous Topic I showed how to use the Veeam Architects Site :top: ,but how does it give us the amount of Cores and memory that the proxy will use? I'll show you … :nerd:

Getting the right amount of processing power is essential to achieving the RTO/RPO defined by the business. In this section, we will outline the recommendations to follow for appropriate sizing

We define

D = Source data in MB
W = Backup window in seconds
T = Throughput in MB/s = D/W
CR = Change rate
CF = Cores required for full backup = T/100
CI = Cores required for incremental backup = (T * CR)/25


Our sample infrastructure has the following characteristics:

  • 1,000 VMs
  • 100 TB of consumed storage
  • 8 hours backup window
  • 10% change rate

By inserting these numbers into the equations above, we get the following results.

We need to change TB to MB / We need to change Hours to Secs

D = 100 TB * 1024 * 1024 = 104,857,600 MB (Source data in MB)
W = 8 hours * 3600 seconds = 28,800 seconds (Backup window in seconds)
T = 104857600/28800 = 3,641 MB/s (Throughput)

 We use the average throughput to predict how many cores are required to meet the defined SLA.

CF = T/100 ~ 36 cores (Cores required for full backup)

The equation is modified to account for decreased performance for incremental backups in the following result:

CI = (T * CR)/25 ~ 14 cores (Cores required for incremental backup)


As seen above, incremental backups typically have lower compute requirements on the proxy servers.

Considering each task consumes up to 2 GB RAM, we get the following result:

36 cores and 72 GB RAM 💪

  • For a physical server, it is recommended to install dual CPUs with 10 cores each. 2 physical servers are required.
  • For virtual proxy servers, it is recommended to configure multiple proxies with maximum 8 vCPUs to avoid co-stop scheduling issues. 5 virtual proxy servers are required.

:point_right: If we instead size only for incremental backups rather than full backups, we can predict alternative full backup window with less compute:

WS = 104857600/(14 * 100)
W = WS/3600 ~ 21 hours

:pushpin:Note: Performance largely depends on the underlying storage and network infrastructure. 

:pushpin: Note: Parallel processing may also be limited by max concurrent tasks at the repository level


:ballot_box_with_check: Proxies do have multiple task slots to process VM source data. It is best practice to plan for 1 physical core or 1 vCPU and 2 GB of RAM for each of these tasks.

:ballot_box_with_check: A task processes 1 VM disk at a time and CPU/RAM resources are used for inline data deduplication, compression, encryption and other features that are running on the proxy itself.

:ballot_box_with_check: In the User Guide it is stated that proxy servers require 2 GB RAM + 500 MB per task


I hope it has been useful for you to understand what we need to know in order to calculate the tasks of the proxy.





Userlevel 7
Badge +14

If you like this, consider attending the official design & optimization class:

Userlevel 4

It works very well! :)

Userlevel 7
Badge +6

If you like this, consider attending the official design & optimization class:

It works very well! :)

If you like this, consider attending the official design & optimization class:


@haslund  I have my certificate for VMCAv1 jeje, at the beginning of the year I was preparing to take VMCT Advanced. I really like teaching the design part..

Userlevel 5
Badge +2

If you like this, consider attending the official design & optimization class:

It will be good indeed :)

If the User Guide says that proxy servers require 2GB RAM + 500MB per task, why are you specing these proxy servers at 72GB RAM?  Since they’re being speced for 36 tasks (hence the 36 vCPU), shouldn’t they only need 20GB RAM (2GB + (36*500MB))?


EDIT: I just checked the User Guide, and I think you have a typo in the “Remember” section, as the User Guide does recommend 2GB RAM per task: User Guide - vProxy sizing