Home → CLC FAQ - Basics: Installation, data, system resources → System and resources → How do I change the memory limit for the CLC Workbench or Server java process?
3.3. How do I change the memory limit for the CLC Workbench or Server java process?
The default memory setting and how to change it
The amount of memory, which can be utilized by a CLC Workbench or CLC Server java process is initially set during the installation of the software. The default amount of memory set in the case of the Workbenches, or suggested in the case of the CLC Server, is the lesser of 50% of the available physical memory or 50GB. We generally recommend that the setting be left at the default level.
It is possible to alter it.
You will find information on how to change this setting in the CLC Workbenches in our deployment manual:
For how to change this setting for the CLC Genomics Server, please refer to the Server manual entry:
Why only 50%?
The default setting, specifying that the maximum amount of memory the Workbench java process should use reflects that fact that space should be available for other system operations and that certain Workbench tools have binary phases - that is, phases that do not run as part of the java process. Binary phases of such tools use memory outside that used by the Workbench process itself and are thus not subject to the memory settings in the vmoptions file. Tools with this profile include de novo assembly and analyses that include a read mapping phase (e.g. read mappings, RNA-seq analyses, small RNA analyses, etc.) and local BLAST searches.
Why only 50Gb?
The 50GB limit is to prevent pauses caused by the garbage collector (GC). In addition to ensuring free memory for the external binaries, as mentioned above, the recommended limits on maximum heap space are there to ensure that the JVM does not spend too much time running garbage collection (GC) processes. The GC is a memory handling subsystem of the JVM, which scans through the currently used heap, and frees up memory by removing contents no longer in use. The larger the maximum heap, the longer each check through the heap will take. The JVM has to suspend all other activities while running the GC - these suspensions are on the scale of milliseconds to a few seconds, and are normally not noticeable.
In combination with the GC subystem of the JVM, the CLC Workbenches and the CLC Genomics Server utilize a sophisticated caching system, moving unneeded data out of memory and in to temporary disk storage. The result of this caching system means that there will not be any noticeable performance improvement with a Java heap space larger than 50GB, while GC pauses may become more noticeable.