acryldata/datahub-helm

Deployment resources and JVM Heap size does not match

MadsHT opened this issue · 2 comments

MadsHT commented

Describe the bug
In acryldata/datahub-helm#238 resources was added to the different deployments, but from what I can see adding, more memory to e.g. the GMS deploymet does not really affect the service, it provides more memory to the pod, but not to the JVM running in the pod.

In the picture below we can see in the to pgraph that 2.6GB of memory is available to the pod, but we can also see that the JVM Heap is only on 640MiB.

billede

This can also be see if i run the following command inside the GMS pod:

datahub-datahub-gms-568f7799c4-z88nm:/$ java -XX:+PrintFlagsFinal -version | grep HeapSize
   size_t ErgoHeapSizeLimit                        = 0                                         {product} {default}
   size_t HeapSizePerGCThread                      = 43620760                                  {product} {default}
   size_t InitialHeapSize                          = 41943040                                  {product} {ergonomic}
   size_t LargePageHeapSizeThreshold               = 134217728                                 {product} {default}
   size_t MaxHeapSize                              = 671088640                                 {product} {ergonomic}
    uintx NonNMethodCodeHeapSize                   = 5830732                                {pd product} {ergonomic}
    uintx NonProfiledCodeHeapSize                  = 122913754                              {pd product} {ergonomic}
    uintx ProfiledCodeHeapSize                     = 122913754                              {pd product} {ergonomic}
openjdk version "11.0.19" 2023-04-18
OpenJDK Runtime Environment (build 11.0.19+7-alpine-r1)
OpenJDK 64-Bit Server VM (build 11.0.19+7-alpine-r1, mixed mode)

Here the MaxHeapSize is 671088640 or about 536.87 Megabit.

While this makes sense once you figure it out, neither the the values.yaml nor the datahub-gms/values.yaml files mentions this effect or suggests what to do to get the JVM to utilize the resources given.
For example setting the _JAVA_OPTIONS: -Xms1024m -Xmx1536m as an ENV.

To Reproduce
Steps to reproduce the behavior:

  1. spin up the helm chart in Kubernetes
  2. execute into the GMS pod
  3. run java -XX:+PrintFlagsFinal -version | grep HeapSize

Expected behavior
Either that the helm chat sets the _JAVA_OPTIONS: -Xms1024m -Xmx1536m environment by default or that in the values file(s) it mentions this and suggests solutions to it?

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

This issue is stale because it has been open for 30 days with no activity. If you believe this is still an issue on the latest DataHub release please leave a comment with the version that you tested it with. If this is a question/discussion please head to https://slack.datahubproject.io. For feature requests please use https://feature-requests.datahubproject.io

This issue was closed because it has been inactive for 30 days since being marked as stale.