-
Bug
-
Resolution: Incomplete
-
P2
-
17.0.1
ADDITIONAL SYSTEM INFORMATION :
Docker image with jdk 17.0.1 on k8s 1.19.2
A DESCRIPTION OF THE PROBLEM :
We are running jdk17 on k8s with
resources:
limits:
memory: "5Gi"
We facing that our container is getting oom killed after some time of extended work.
We monitored the heap and it was always the same.
Then we found out that the String Deduplication space is growing to infinity.
Our JAVA_OPTS
-XX:MaxRAM=4g -XX:MaxRAMPercentage=50 -XX:InitialRAMPercentage=10 -XX:+UseG1GC -XX:+UseStringDeduplication -XX:NativeMemoryTracking=detail -XX:G1ReservePercent=10
After some time we find this with
jcmd 1 VM.native_memory summary.diff
String Deduplication (reserved=965109KB +836897KB, committed=965109KB +836897KB)
(malloc=965109KB +836897KB #733224 +522166)
which is about 836MB more and still growing till k8s is killing the pod.
We haven't found a option to limit the String Deduplication Space. Is there any?
REGRESSION : Last worked in version 17.0.1
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
use -XX:+UseStringDeduplication in a k8s enviroment with limited ressources and running a task that reads a lot of data from a DB.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
memory should be constant
ACTUAL -
String Deduplication space is growing infinite
---------- BEGIN SOURCE ----------
no source code available
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
no workaround available.
FREQUENCY : always
Docker image with jdk 17.0.1 on k8s 1.19.2
A DESCRIPTION OF THE PROBLEM :
We are running jdk17 on k8s with
resources:
limits:
memory: "5Gi"
We facing that our container is getting oom killed after some time of extended work.
We monitored the heap and it was always the same.
Then we found out that the String Deduplication space is growing to infinity.
Our JAVA_OPTS
-XX:MaxRAM=4g -XX:MaxRAMPercentage=50 -XX:InitialRAMPercentage=10 -XX:+UseG1GC -XX:+UseStringDeduplication -XX:NativeMemoryTracking=detail -XX:G1ReservePercent=10
After some time we find this with
jcmd 1 VM.native_memory summary.diff
String Deduplication (reserved=965109KB +836897KB, committed=965109KB +836897KB)
(malloc=965109KB +836897KB #733224 +522166)
which is about 836MB more and still growing till k8s is killing the pod.
We haven't found a option to limit the String Deduplication Space. Is there any?
REGRESSION : Last worked in version 17.0.1
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
use -XX:+UseStringDeduplication in a k8s enviroment with limited ressources and running a task that reads a lot of data from a DB.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
memory should be constant
ACTUAL -
String Deduplication space is growing infinite
---------- BEGIN SOURCE ----------
no source code available
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
no workaround available.
FREQUENCY : always