The high RAM usage is primarily due to the fact that it uses a full instance of SQL Server 2012 to access a LocalDB database.
Usually when using LocalDB, the SQL service is started on demand and is shut down when not in use. However in Veeams case, it is kept running 24/7 and according to support this behaviour is by design.
In addition to the sqlservr.exe task using 220MB, two other services run using ~40MB each - Veeam Tray and Veeam Scheduler.
If possible (and I'm not saying it is ) resource usage when Veeam is not running should be improved by making the following changes:
- Stop the SQL Server process when backups aren't running and/or switch to a lightweight DB such as SQLite, SQL Compact, or Firebird etc. SQL Server 2012 seems to be a overkill for a backup application, especially when the LocalDB autostart function is not being used at all.
- Use the Windows Task Scheduler API to start the backups (and Veeam Backup Service) only when it needs to run (this is how Macrium Reflect works and it uses zero resources when not backing up).
- The tray service seems to use a lot of RAM for what it does - more than my email client and IM chat client combined, but it just seems to be a link to launch the application? Is the tray service needed? No other backup software I'm has a tray service as usually backup software has no realtime function.