Preface

Unimus is written in Java. In Java, a software package can specify its memory limitations, or it can use the default ones provided by the JVM (Java environment) installed. In case of x64 JVM, default max memory usage is 4GB. In case of x86 JVM, default max memory usage is 1GB. The philosophy of Java is that if all the stuff you need is in memory, the application is faster (or course, at the expense of memory usage). This basically means that the garbage collector is not executed by the JVM until memory consumption of the application gets close to the limit, or until system memory starts running out.

 If you limit how much RAM an application can claim, there is of course a trade-off. The less RAM an application has assigned, the more often the garbage collector will need to run, which will increase the CPU utilization. If you assign too little memory, the application can crash with "not enough memory" errors. 

So the actual RAM utilization of Unimus will depend on how its memory limits are configured, as well as how many devices you have, how often you run backups, etc. - basically on how utilized the software is.

Default Unimus configuration

By default, Unimus is configured to use around 1.2GB of RAM at maximum. This configuration is split between 2 main parts:

The "-Xmx" configuration is set to 768 MB by default, and the other Java memory pools consume around an additional 400 MB.

This can be changed by the user.

Changing RAM limit assignment

Our recommendations for memory assignment can be found in the Hardware Sizing Guide here on the wiki.
(you can use the values there as the -Xmx argument for the JVM)

Unimus: Hardware requirements - Unimus
Unimus Core: Hardware requirements - Core

On Windows:

For portable:
Create a file named Unimus.l4j.ini in the same directory as the Unimus executable.
Change Unimus in the above file name to exactly match the name of the Unimus executable.

For installer:
Add the below lines to Unimus.l4j.ini in "C:\Program Files\Unimus\" (or "C:\Program Files\Unimus-Core\" for Unimus Core).

Inside of this configuration file, please change the following lines:

-Xmx2G

Please make sure to place each argument into its own line.

This would allow Unimus to only grow to around 2GB of RAM utilization (you might see more usage in Task Manager, due to JVM overhead).

Restart Unimus to apply the new configuration.

On Linux (Debian/Ubuntu):

Edit the contents of /etc/default/unimus (or /etc/default/unimus-core for Unimus Core).

Add this into the file:

-Xmx2G

This would allow Unimus to only grow to around 2GB of RAM utilization (you might see more usage in 'top' or 'htop', due to JVM overhead).

Restart Unimus to apply the new configuration.