The JobScheduler runs a Java Virtual Machine for each task that is executed.
Heap Space usage with Java 1.8
- Java 1.8 changes the memory management in way that the JVM allocates heap space depending on the available physical memory (1/64).
- This results in the fact that JobScheduler tasks are allocated a lot more memory than required. Typically such jobs, e.g. the JITL jobs, can be operated with 32 MB to 64 MB. However, for a server equipped with 64 GB physical memory each task will be allocated 1 GB by default.
- It is therefore recommended to reduce the memory consumption by JobScheduler settings, see chapter Modify heap size settings.
Heap Space usage with Java 1.7 and before
- By default the JVM would use 64 MB virtual memory.
- Adjustments for memory consumption of jobs
- have to made if jobs require more than 64 MB.
- can be made if jobs can be operated with 32 MB, e.g. the JITL jobs for SSH connections.
Modify heap space settings
- The minimum memory allocation by Java can be checked with the command:
java -XX:+PrintFlagsFinal -version
The output of the command should provide a line that contains the stringInitialHeapSize
with the minimum heap space setting.
- Java heap space usage can be modified by JobScheduler settings at job level and at a global level:
- The -Xmxsize parameter sets the maximum Java heap size
- The -Xmssize paramter sets the initial Java heap size
- each job can be assigned an attribute to e.g. specify 64 MB memory consumption like this
<job java_options="-Xmx64m -Xms64m">
- The file ./config/sos.ini can be used to specify the memory consumption for all jobs like this
[java]
options = -Xmx64m
-Xms64m
- The file ./config/factory.ini can be used to specify memory consumption for jobs executed with Agents like this:
[java]
job_options = -Xmx64m
-Xms64m
- each job can be assigned an attribute to e.g. specify 64 MB memory consumption like this
- For more detailed information see How to increase or decrease the Java heap space