Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 x86 Oracle JVM, default max memory usage is 1GB.
In case of x64 Oracle JVM, default max memory usage is 4GB.

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 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 768MB of RAM at maximum.

This can be changed by the user.

Changing RAM assignment

RAM assignment to Unimus can be configured.

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:

Code Block
languagetext
-Xms1G
-Xmx2G

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

This would assign 1GB of RAM to Unimus from the start, and allow it to only grow to 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:

Code Block
languagetext
-Xms1G -Xmx2G

This would assign 1GB of RAM to Unimus from the start, and allow it to only grow to 2GB of RAM utilization (you might see more usage in 'top' or 'htop', due to JVM overhead).

Restart Unimus to apply the new configuration.