You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/staging/content/faq/resource-settings.md
+56-6
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ description: "Tune container memory and CPU usage by configuring Kubernetes reso
9
9
#### Contents
10
10
11
11
-[Introduction](#introduction)
12
-
-[Setting resource requests and limits in a Domain YAML file](#setting-resource-requests-and-limits-in-a-domain)
12
+
-[Setting resource requests and limits in a Domain resource](#setting-resource-requests-and-limits-in-a-domain-resource)
13
13
-[Determining Pod Quality Of Service](#determining-pod-quality-of-service)
14
14
-[Java heap size and memory resource considerations](#java-heap-size-and-memory-resource-considerations)
15
15
-[Importance of setting heap size and memory resources](#importance-of-setting-heap-size-and-memory-resources)
@@ -23,13 +23,63 @@ description: "Tune container memory and CPU usage by configuring Kubernetes reso
23
23
24
24
#### Introduction
25
25
26
-
The operator creates a container in its own Pod for each WebLogic Server instance. You can tune container memory and CPU usage by configuring Kubernetes resource requests and limits, and you can tune a WebLogic JVM heap usage using the `USER_MEM_ARGS` environment variable in your Domain YAML file. A resource request sets the minimum amount of a resource that a container requires. A resource limit is the maximum amount of a resource a container is given and prevents a container from using more than its share of a resource. Additionally, resource requests and limits determine a Pod's quality of service.
26
+
The CPU and memory requests and limits for WebLogic Server Pods usually need to be tuned
27
+
where the optimal values depend on your workload, applications, and the Kubernetes environment.
28
+
Requests and limits should be configured based on the expected traffic during peak usage.
29
+
For example:
30
+
31
+
- Tune CPU and memory high enough
32
+
to handle expected peak workloads for applications
33
+
that require large amounts of in-memory processing
34
+
or very CPU intensive calculations.
35
+
- Tune memory high enough so that WebLogic JMS messaging
36
+
applications that generate large backlogs of unprocessed
37
+
persistent or non-persistent messages
38
+
can expect JMS to efficiently cache the backlogs in memory.
39
+
- CPU requirements are sometimes significantly higher
40
+
when a WebLogic Server is starting. This means that a low CPU
based on monitoring resource usage in your environment.
47
+
48
+
The operator creates a container in its own Pod for each domain's
49
+
WebLogic Server instances and for the short-lived introspector job that
50
+
is automatically launched before WebLogic Server Pods are launched.
51
+
You can tune container memory and CPU usage
52
+
by configuring Kubernetes resource requests and limits,
53
+
and you can tune a WebLogic JVM heap usage
54
+
using the `USER_MEM_ARGS` environment variable in your Domain YAML file.
55
+
The introspector job pod uses the same CPU and memory settings as the
56
+
domain's WebLogic Administration Server pod.
57
+
A resource request sets the minimum amount of a resource that a container requires.
58
+
A resource limit is the maximum amount of a resource a container is given
59
+
and prevents a container from using more than its share of a resource.
60
+
Additionally, resource requests and limits determine a Pod's quality of service.
27
61
28
62
This FAQ discusses tuning these parameters so WebLogic Server instances run efficiently.
29
63
30
-
#### Setting resource requests and limits in a Domain
31
-
32
-
You can set Kubernetes memory and CPU requests and limits in a [Domain YAML file]({{< relref "/userguide/managing-domains/domain-resource" >}}) using its `spec.serverPod.resources` stanza, and you can override the setting for individual WebLogic Server instances or clusters using the `serverPod.resources` element in `spec.adminServer`, `spec.clusters`, or `spec.managedServers`. For example:
64
+
#### Setting resource requests and limits in a Domain resource
65
+
66
+
You can set Kubernetes memory and CPU requests and limits in a
and you can override the setting for individual WebLogic Server instances or clusters using the
70
+
`serverPod.resources` element in `spec.adminServer`, `spec.clusters`, or `spec.managedServers`.
71
+
Note that the introspector job pod uses the same settings
72
+
as the WebLogic Administration Server pod.
73
+
74
+
Values set in the `.serverPod` stanzas for a more specific type of pod, override
75
+
the same values if they are also set for a more general type of pod, and inherit
76
+
any other values set in the more general pod.
77
+
The `spec.adminServer.serverPod`, `spec.managedServers.serverPod`,
78
+
and `spec.clusters.serverPod` stanzas all inherit from and override
79
+
the `spec.serverPod` stanza. When a `spec.managedServers.serverPod` stanza
80
+
refers to a pod that is part of a cluster, it inherits
81
+
from and overrides from its cluster's `spec.clusters.serverPod` setting (if any),
82
+
which in turn inherits from and overrides the domain's `spec.serverPod` setting.
33
83
34
84
```yaml
35
85
spec:
@@ -156,7 +206,7 @@ Similarly, the operator samples configure CPU and memory resource requests to at
156
206
157
207
There's no memory or CPU limit configured by default in samples and so the default QoS for sample WebLogic Server Pod's is `burstable`.
158
208
159
-
If you wish to set resource requests or limits differently on a sample Domain YAML file or template, see [Setting resource requests and limits in a Domain resource](#setting-resource-requests-and-limits-in-a-domain). Or, for samples that generate their Domain resource using an 'inputs' file, see the `serverPodMemoryRequest`, `serverPodMemoryLimit`, `serverPodCpuRequest`, and `serverPodCpuLimit` parameters in the sample's `create-domain.sh`input file.
209
+
If you wish to set resource requests or limits differently on a sample Domain YAML file or template, see [Setting resource requests and limits in a Domain resource](#setting-resource-requests-and-limits-in-a-domain-resource). Or, for samples that generate their Domain resource using an "inputs" YAML file, see the `serverPodMemoryRequest`, `serverPodMemoryLimit`, `serverPodCpuRequest`, and `serverPodCpuLimit` parameters in the sample's `create-domain.sh`inputs file.
Copy file name to clipboardExpand all lines: documentation/staging/content/samples/azure-kubernetes-service/domain-on-pv.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -301,7 +301,7 @@ We need to set up the domain configuration for the WebLogic domain.
301
301
troubleshoot the reason and resolve it before proceeding to the next
302
302
step.
303
303
304
-
{{% notice note %}} This sample creates WebLogic Server pods with reasonable values for memory, CPU, and JVM heap size (as a percentage of memory). You can supply different values. Edit`~/azure/weblogic-on-aks/domain1.yaml` and set the desired values for `serverPodMemoryRequest`, `serverPodMemoryLimit`, `serverPodCpuRequest`, `serverPodCpuLimit` and `javaOptions` before running `./create-domain.sh -i ~/azure/weblogic-on-aks/domain1.yaml -o ~/azure -e -v`.
304
+
{{% notice note %}} This sample creates WebLogic Server Pods with reasonable values for memory, CPU, and JVM heap size (as a percentage of memory). These settings were determined by running a skeleton WebLogic domain with minimal or no deployed services and applications on potentially limited or heavily shared container environments. For advice about tuning CPU and memory requests and limits for broader use cases or in a production environment, see the [Pod memory and CPU resources](https://oracle.github.io/weblogic-kubernetes-operator/faq/resource-settings/) FAQ. To supply different values, edit`~/azure/weblogic-on-aks/domain1.yaml` and set the desired values for `serverPodMemoryRequest`, `serverPodMemoryLimit`, `serverPodCpuRequest`, `serverPodCpuLimit` and `javaOptions` before running `./create-domain.sh -i ~/azure/weblogic-on-aks/domain1.yaml -o ~/azure -e -v`.
0 commit comments