All issues, tasks, improvements and new features of WSO2 API Manager
Apache License 2.0
34
stars
8
forks
source link
JVM level memory tuning parameters (InitialRAMPercentage MaxRAMPercentage and MinRAMPercentage) are not supported for APIM 4.1.0 in Kubernetes environments. #3320
The goal is to dynamically change the memory allocation for APIM in the Kubernetes environment. But the pod is failing with an OOMKIlled error in the startup once the percentages are configured instead of Xmx and Xms.
Steps to Reproduce
Followed the steps here and deployed single APIM 4.1.0 instance in kubernetes
helm install --dependency-update apimtest /home/azureuser/new4.1.0/kubernetes-apim/simple/am-single --namespace apim
Initially, we kept the default Xmx and Xms (-Xms1024m -Xmx1024m) values and monitored the pods behavior for a while.
The pods were running smoothly without an issue. Please note that there was no load on the APIM servers.
Then we edited the deployment and removed the default Xmx and Xms values.
k edit deploy wso2am-single-node-am-deployment -n apim
And it was replaced with percentage values as below.
As you can see 75% is higher than the original Xmx and Xms values it had, since we didn't change anything with requests, the behavior is the same when percentages are dropped to 50%.
We tried by applying the parameters as -XX:+UnlockExperimentalVMOptions -XX:+UseContainerSupport -XX:MaxRAMFraction=1 -XX:InitialRAMPercentage=75.0 -XX:MaxRAMPercentage=75.0 -XX:MinRAMPercentage=75.0. But still the pod fails to start with an OOMKilled issue. Sharing the output after describing the pod.
JDK version is as below
openjdk version "11.0.14" 2022-01-18
OpenJDK Runtime Environment Temurin-11.0.14+9 (build 11.0.14+9)
OpenJDK 64-Bit Server VM Temurin-11.0.14+9 (build 11.0.14+9, mixed mode)
Description
Hi All
The goal is to dynamically change the memory allocation for APIM in the Kubernetes environment. But the pod is failing with an OOMKIlled error in the startup once the percentages are configured instead of Xmx and Xms.
Steps to Reproduce
Followed the steps here and deployed single APIM 4.1.0 instance in kubernetes
helm install --dependency-update apimtest /home/azureuser/new4.1.0/kubernetes-apim/simple/am-single --namespace apim
Initially, we kept the default Xmx and Xms (-Xms1024m -Xmx1024m) values and monitored the pods behavior for a while.In the pod the resource allocation was as below.
The pods were running smoothly without an issue. Please note that there was no load on the APIM servers. Then we edited the deployment and removed the default Xmx and Xms values.
k edit deploy wso2am-single-node-am-deployment -n apim
And it was replaced with percentage values as below.helm upgrade --dependency-update apimtest /home/azureuser/new4.1.0/kubernetes-apim/simple/am-single --namespace apim --create-namespace
Afterwards, we could see the pod keep crashing with OOM error. And we can see the percentage values are applied properly when the pod is described.
As you can see 75% is higher than the original Xmx and Xms values it had, since we didn't change anything with requests, the behavior is the same when percentages are dropped to 50%.
We tried by applying the parameters as -XX:+UnlockExperimentalVMOptions -XX:+UseContainerSupport -XX:MaxRAMFraction=1 -XX:InitialRAMPercentage=75.0 -XX:MaxRAMPercentage=75.0 -XX:MinRAMPercentage=75.0. But still the pod fails to start with an OOMKilled issue. Sharing the output after describing the pod.
Affected Component
APIM
Version
4.1.0
Environment Details (with versions)
Kubernetes envrionment
JDK version is as below openjdk version "11.0.14" 2022-01-18 OpenJDK Runtime Environment Temurin-11.0.14+9 (build 11.0.14+9) OpenJDK 64-Bit Server VM Temurin-11.0.14+9 (build 11.0.14+9, mixed mode)
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response