Veeam Home | Support | Downloads
Best Practices for Veeam Backup & Replication 7.0 for VMware

Veeam Management Pack Help Center  > Best Practices for Deployment & Configuration >  Resource Planning and Optimization > Sizing Veeam Backup Server

Sizing Veeam Backup Server

Previous page Next page Print this Topic

Table of contents

The Veeam backup server handles all communications with vCenter/ESX(i) hosts. It coordinates job schedules, provides the management interface, schedule jobs, collects statistics and otherwise manages the operations of the backup environment.

This server stores its configuration and job history in a Microsoft SQL database. The setup will install SQL 2008 R2 Express; it is also possible to use a standalone SQL server. The SQL Express server instance is sufficient for most environments, and the decision to use a dedicated instance is not typically based on capacity, but rather on operational and/or administrative reasons.


If the environment already has a robust, highly available SQL infrastructure, then a standalone SQL server may be an excellent option. However, this introduces an extra dependency for the Veeam Backup & Replication environment. In general, it is suggested to use the bundled SQL, but environments with more than 1000 VMs may benefit from a dedicated SQL environment

The Veeam backup server starts a management process for each active job. This job manager communicates with vCenter server and enumerates the vSphere infrastructure to determine which objects should be backed up. Enumeration data is then cached by the job manager service for the duration of the job. For larger environments, this information can be of significant size, and each process can use as much as 500MB of memory, with 200-300MB being typical. Thus, you need to ensure that Veeam backup server has enough memory to run as many concurrent jobs as required in your environment. 4 GB RAM plus 500 MB RAM for each concurrent job is a recommended minimum.

Also, when many jobs are running, the system can spend a significant time collecting real time statistics from the various proxies that are actually running the job. This can lead to significant CPU usage simply tracking all of the changing data. So, as a rule of thumb, there should be at least one vCPU/core for every 8-10 concurrent jobs with a minimum of 2 vCPUs/cores.

Table of contents