Skip to content

Commit

Permalink
Merge branch 'rm/nm-memory-settings' into 'release/3.4'
Browse files Browse the repository at this point in the history
update NM args

See merge request weblogic-cloud/weblogic-kubernetes-operator!4530
  • Loading branch information
rjeberhard committed Dec 21, 2023
2 parents e42f282 + d0b7cfe commit 3e44ced
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ You can use the `kubectl exec` command to start an interactive WLST session
within a pod or to remotely run a WLST script on a pod.
Typically, this is the preferred method.

**NOTE**: The WLST script uses the value of the environment variable `USER_MEM_ARGS` to control the heap settings of the JVM process. If you have set the environment variable
`USER_MEM_ARGS` in the domain resource YAML, the WLST process will inherit the memory settings. For example,
if you have the `USER_MEM_ARGS` value set to `-Xms2048m -Xmx2048m`, the WebLogic Server JAVA process will use this heap settings, and if you run the WLST script in the server pod,
the WLST script JAVA process will also use this heap settings. This may cause unexpected behavior in the server pod due to additional memory usage.

For example, if a `domainUID` is `sample-domain1`,
its Administration Server is named `admin-server` and is configured with default port `7001`,
and its pods are running in namespace `sample-domain1-ns`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ You can use the following environment variables to specify JVM memory and JVM op
* `JAVA_OPTIONS`: Java options for starting WebLogic Server.
* `USER_MEM_ARGS`: JVM memory arguments for starting WebLogic Server.
* `NODEMGR_JAVA_OPTIONS`: Java options for starting a Node Manager instance.
* `NODEMGR_MEM_ARGS`: JVM memory arguments for starting a Node Manager instance.
* `NODEMGR_MEM_ARGS`: JVM memory arguments for starting a Node Manager instance; this will take precedence over `JAVA_OPTIONS` and `USER_MEM_ARGS`.
* `WLST_PROPERTIES`: System properties for WLST commands in introspector jobs or WebLogic Server instance containers.
* `WLST_EXTRA_PROPERTIES`: System properties appended to WLST_PROPERTIES for WLST commands in introspector jobs or WebLogic Server instance containers.
* `WLSDEPLOY_PROPERTIES`: System properties for WebLogic Deploy Tool commands during Model in Image introspector jobs or WebLogic Server instance containers.
Expand All @@ -242,7 +242,8 @@ You can use the following environment variables to specify JVM memory and JVM op

* The following behavior occurs depending on whether or not `NODEMGR_JAVA_OPTIONS` and `NODEMGR_MEM_ARGS` are defined:
* If `NODEMGR_JAVA_OPTIONS` is not defined and `JAVA_OPTIONS` is defined, then the `JAVA_OPTIONS` value will be applied to the Node Manager instance.
* If `NODEMGR_MEM_ARGS` is not defined, then default memory and Java security property values (`-Xms64m -Xmx100m -Djava.security.egd=file:/dev/./urandom`) will be applied to the Node Manager instance. It can be explicitly set to another value in your Domain YAML file using the `env` attribute under the `serverPod` configuration.
* If `NODEMGR_MEM_ARGS` is not defined and `USER_MEM_ARGS` is defined, then the `USER_MEM_ARGS` value will be applied to the Node Manager instance.
* If nothing else is specified, then the default Java property values (`-Xms64m -Xmx100m -Djava.security.egd=file:/dev/./urandom`) will be applied to the Node Manager instance.
* The `USER_MEM_ARGS` and `WLST_EXTRA_PROPERTIES` environment variables both default to `-Djava.security.egd=file:/dev/./urandom` in all WebLogic Server pods and the WebLogic introspection job. They can be explicitly set to another value in your Domain YAML file using the `env` attribute under the `serverPod` configuration.
* Notice that the `NODEMGR_MEM_ARGS`, `USER_MEM_ARGS`, and `WLST_EXTRA_PROPERTIES` environment variables all include `-Djava.security.egd=file:/dev/./urandom` by default. This helps to speed up the Node Manager and WebLogic Server startup on systems with low entropy, plus similarly helps to speed up introspection job usage of the WLST `encrypt` command.
* For a detailed description of Java and pod memory tuning see the [Pod memory and CPU resources FAQ]({{<relref "/faq/resource-settings.md">}}).
Expand Down

0 comments on commit 3e44ced

Please sign in to comment.