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 string InitialHeapSize 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
  • For more detailed information see How to increase or decrease the Java heap space


  • No labels