Skip to end of metadata
Go to start of metadata

Introduction

Use of Java Options depends on the Java release in use.

  • Typically earlier Java releases include features that are not active by default.
  • Such features can be active by default in later releases.

Heap Size

Heap size depends on memory consumption of each JS7 component that is related to

  • the number of parallel users working with JOC Cockpit,
  • the number of workflows deployed to Controllers and Agents,
  • the number of parallel tasks,
  • the maximum outage duration that is assumed for the connection between Agent and Controller as well as for the connection between Controller and JOC Cockpit..

For more details see JS7 - Sizing.


Specify minimum and maximum heap size for JOC Cockpit
# Default value
JAVA_OPTIONS="-Xms128m -Xmx500m"

Explanation:

  • JOC Cockpit can be operated from initially 128 MB heap size with -Xms128m.
  • Heap size can grow up to the specified maximum -Xmx500m based on performance indicators such as
    • the number users working with JOC Cockpit,
    • the number of inventory items such as workflows, schedules etc.
  • The above values should work for approx. 10 concurrent users.


Specify minimum and maximum heap size for Controllers
# No Default value

# Recommended: limit initial and max. heap size
JAVA_OPTIONS="-Xms500m -Xmx1g"

Explanation:

  • The Controller can be operated from initially 500 MB heap size with -Xms500m.
  • Heap size can grow up to the specified maximum -Xmx1g based on performance indicators such as
    • the number of workflows deployed to the Controller,
    • the max. failure time for which the Controller is not connected to JOC Cockpit.
  • The above values should work for approx. 10 000 workflows with a max. failure time of 24 hours.


Specify minimum and maximum heap size for Agents
# Default value
JAVA_OPTIONS="-Xms100m"

# Recommended: limit initial and max. heap size
JAVA_OPTIONS="-Xms100m -Xmx1g"

Explanation:

  • The Agent can be operated from initially 100 MB heap size with -Xms100m.
  • By default no maximum heap size is assigned, i.e. the Agent will be assigned the heap size calculated by Java when starting the Java Virtual Machine.
  • Heap size can grow up to the specified maximum -Xmx1g based on performance indicators such as
    • the number of workflows deployed to the Agent,
    • the number of parallel tasks executed with the Agent,
    • the max. failure time for which the Agent is not connected to a Controller.
  • The above values should work for approx. 10 000 workflows with a max. failure time of 24 hours.

Threads

JS7 components make use of multithreading that is dynamically assigned based on available CPU cores.

The JOC Cockpit requires the thread stack size to be set as some Linux distributions such as Ubuntu tend to modify the JDK's default values. 


Specify thread stack size for JOC Cockpit
# Default value
JAVA_OPTIONS="-Xss="4000kb"

Explanation:

  • If a StackOverflowError exception is raised then the stack in use is larger than the thread stack size and suggests to increase the thread stack size..
  • if an OutOfMemoryError exception is raised then the stack is larger then the available memory and suggests to decrease the thread stack size.

Garbage Collector

The Java Garbage Collector has to be operated in a performant and efficient way as otherwise memory remains blocked by unused objects.


Activate G1 Garbage Collector
# Recommended: use G1 Garbage Collector
JAVA_OPTIONS="-XX:+UseG1GC"

Explanation:

  • It is recommended to activate the G1 Garbage Collector
  • This applies to Java releases 1.8 to 11. For Java 17 the default Garbage Collector is G1.
  • This option is applicable for JOC Cockpit, Controller and Agents.

String Deduplication

Strings held in memory can be managed more efficiently by the JVM if a sting is available just once and is referenced from a number of occurrences.


Activate String Deduplication
# Recommended: activate string deduplication
JAVA_OPTIONS="-XX:+UseStringDeduplication"

Explanation:

  • String deduplication reduces memory consumption.
  • This option is applicable for JOC Cockpit, Controller and Agents.



  • No labels
Write a comment…