Skip to content

Commit 7e89dc1

Browse files
committed
provide additional GC tuning config via Helm values
1 parent 0bbd5ec commit 7e89dc1

File tree

7 files changed

+81
-1
lines changed

7 files changed

+81
-1
lines changed

deployment/helm/ditto/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ description: |
1616
A digital twin is a virtual, cloud based, representation of his real world counterpart
1717
(real world “Things”, e.g. devices like sensors, smart heating, connected cars, smart grids, EV charging stations etc).
1818
type: application
19-
version: 3.8.8 # chart version is effectively set by release-job
19+
version: 3.8.9 # chart version is effectively set by release-job
2020
appVersion: 3.8.6
2121
keywords:
2222
- iot-chart

deployment/helm/ditto/templates/connectivity-deployment.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,17 @@ spec:
145145
value: >
146146
{{ .Values.global.jvmOptions }}
147147
-XX:ActiveProcessorCount={{ .Values.connectivity.jvm.activeProcessorCount }}
148+
{{- if gt (int .Values.connectivity.jvm.parallelGcThreads) 0 }}
149+
-XX:ParallelGCThreads={{ .Values.connectivity.jvm.parallelGcThreads }}
150+
{{- end }}
151+
{{- if gt (int .Values.connectivity.jvm.concGcThreads) 0 }}
152+
-XX:ConcGCThreads={{ .Values.connectivity.jvm.concGcThreads }}
153+
{{- end }}
148154
-XX:MaxRAMPercentage={{ .Values.connectivity.jvm.heapRamPercentage }}
149155
-XX:InitialRAMPercentage={{ .Values.connectivity.jvm.heapRamPercentage }}
150156
-XX:MaxGCPauseMillis={{ .Values.connectivity.jvm.maxGcPauseMillis }}
151157
-XX:G1ReservePercent={{ .Values.connectivity.jvm.g1ReservePercent }}
158+
-XX:InitiatingHeapOccupancyPercent={{ .Values.connectivity.jvm.initiatingHeapOccupancyPercent }}
152159
-XX:+UnlockExperimentalVMOptions
153160
-XX:G1NewSizePercent={{ .Values.connectivity.jvm.g1NewSizePercent }}
154161
-XX:G1MaxNewSizePercent={{ .Values.connectivity.jvm.g1MaxNewSizePercent }}

deployment/helm/ditto/templates/gateway-deployment.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,17 @@ spec:
145145
value: >
146146
{{ .Values.global.jvmOptions }}
147147
-XX:ActiveProcessorCount={{ .Values.gateway.jvm.activeProcessorCount }}
148+
{{- if gt (int .Values.gateway.jvm.parallelGcThreads) 0 }}
149+
-XX:ParallelGCThreads={{ .Values.gateway.jvm.parallelGcThreads }}
150+
{{- end }}
151+
{{- if gt (int .Values.gateway.jvm.concGcThreads) 0 }}
152+
-XX:ConcGCThreads={{ .Values.gateway.jvm.concGcThreads }}
153+
{{- end }}
148154
-XX:MaxRAMPercentage={{ .Values.gateway.jvm.heapRamPercentage }}
149155
-XX:InitialRAMPercentage={{ .Values.gateway.jvm.heapRamPercentage }}
150156
-XX:MaxGCPauseMillis={{ .Values.gateway.jvm.maxGcPauseMillis }}
151157
-XX:G1ReservePercent={{ .Values.gateway.jvm.g1ReservePercent }}
158+
-XX:InitiatingHeapOccupancyPercent={{ .Values.gateway.jvm.initiatingHeapOccupancyPercent }}
152159
-XX:+UnlockExperimentalVMOptions
153160
-XX:G1NewSizePercent={{ .Values.gateway.jvm.g1NewSizePercent }}
154161
-XX:G1MaxNewSizePercent={{ .Values.gateway.jvm.g1MaxNewSizePercent }}

deployment/helm/ditto/templates/policies-deployment.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,17 @@ spec:
145145
value: >
146146
{{ .Values.global.jvmOptions }}
147147
-XX:ActiveProcessorCount={{ .Values.policies.jvm.activeProcessorCount }}
148+
{{- if gt (int .Values.policies.jvm.parallelGcThreads) 0 }}
149+
-XX:ParallelGCThreads={{ .Values.policies.jvm.parallelGcThreads }}
150+
{{- end }}
151+
{{- if gt (int .Values.policies.jvm.concGcThreads) 0 }}
152+
-XX:ConcGCThreads={{ .Values.policies.jvm.concGcThreads }}
153+
{{- end }}
148154
-XX:MaxRAMPercentage={{ .Values.policies.jvm.heapRamPercentage }}
149155
-XX:InitialRAMPercentage={{ .Values.policies.jvm.heapRamPercentage }}
150156
-XX:MaxGCPauseMillis={{ .Values.policies.jvm.maxGcPauseMillis }}
151157
-XX:G1ReservePercent={{ .Values.policies.jvm.g1ReservePercent }}
158+
-XX:InitiatingHeapOccupancyPercent={{ .Values.policies.jvm.initiatingHeapOccupancyPercent }}
152159
-XX:+UnlockExperimentalVMOptions
153160
-XX:G1NewSizePercent={{ .Values.policies.jvm.g1NewSizePercent }}
154161
-XX:G1MaxNewSizePercent={{ .Values.policies.jvm.g1MaxNewSizePercent }}

deployment/helm/ditto/templates/things-deployment.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,17 @@ spec:
145145
value: >
146146
{{ .Values.global.jvmOptions }}
147147
-XX:ActiveProcessorCount={{ .Values.things.jvm.activeProcessorCount }}
148+
{{- if gt (int .Values.things.jvm.parallelGcThreads) 0 }}
149+
-XX:ParallelGCThreads={{ .Values.things.jvm.parallelGcThreads }}
150+
{{- end }}
151+
{{- if gt (int .Values.things.jvm.concGcThreads) 0 }}
152+
-XX:ConcGCThreads={{ .Values.things.jvm.concGcThreads }}
153+
{{- end }}
148154
-XX:MaxRAMPercentage={{ .Values.things.jvm.heapRamPercentage }}
149155
-XX:InitialRAMPercentage={{ .Values.things.jvm.heapRamPercentage }}
150156
-XX:MaxGCPauseMillis={{ .Values.things.jvm.maxGcPauseMillis }}
151157
-XX:G1ReservePercent={{ .Values.things.jvm.g1ReservePercent }}
158+
-XX:InitiatingHeapOccupancyPercent={{ .Values.things.jvm.initiatingHeapOccupancyPercent }}
152159
-XX:+UnlockExperimentalVMOptions
153160
-XX:G1NewSizePercent={{ .Values.things.jvm.g1NewSizePercent }}
154161
-XX:G1MaxNewSizePercent={{ .Values.things.jvm.g1MaxNewSizePercent }}

deployment/helm/ditto/templates/thingssearch-deployment.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,17 @@ spec:
145145
value: >
146146
{{ .Values.global.jvmOptions }}
147147
-XX:ActiveProcessorCount={{ .Values.thingsSearch.jvm.activeProcessorCount }}
148+
{{- if gt (int .Values.thingsSearch.jvm.parallelGcThreads) 0 }}
149+
-XX:ParallelGCThreads={{ .Values.thingsSearch.jvm.parallelGcThreads }}
150+
{{- end }}
151+
{{- if gt (int .Values.thingsSearch.jvm.concGcThreads) 0 }}
152+
-XX:ConcGCThreads={{ .Values.thingsSearch.jvm.concGcThreads }}
153+
{{- end }}
148154
-XX:MaxRAMPercentage={{ .Values.thingsSearch.jvm.heapRamPercentage }}
149155
-XX:InitialRAMPercentage={{ .Values.thingsSearch.jvm.heapRamPercentage }}
150156
-XX:MaxGCPauseMillis={{ .Values.thingsSearch.jvm.maxGcPauseMillis }}
151157
-XX:G1ReservePercent={{ .Values.thingsSearch.jvm.g1ReservePercent }}
158+
-XX:InitiatingHeapOccupancyPercent={{ .Values.thingsSearch.jvm.initiatingHeapOccupancyPercent }}
152159
-XX:+UnlockExperimentalVMOptions
153160
-XX:G1NewSizePercent={{ .Values.thingsSearch.jvm.g1NewSizePercent }}
154161
-XX:G1MaxNewSizePercent={{ .Values.thingsSearch.jvm.g1MaxNewSizePercent }}

deployment/helm/ditto/values.yaml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,12 @@ policies:
661661
# activeProcessorCount defines how many processors the JVM should be configured to use
662662
# this is e.g. relevant for the GC which calculates the amount of asynchronous threads for GC based on the processor count
663663
activeProcessorCount: 2
664+
# parallelGcThreads defines how many threads the G1 garbage collector should use for parallel GC operations
665+
# if configured < 1, the JVM chooses according to its own logic
666+
parallelGcThreads: 0
667+
# concGcThreads defines how many threads the G1 garbage collector should use for concurrent GC operations
668+
# if configured < 1, the JVM chooses according to its own logic
669+
concGcThreads: 0
664670
# heapRamPercentage defines how much memory of the configured "resources.memoryMi" can be used by the JVM heap space
665671
# be aware that the JVM also requires memory for "off heap" (and also stack) space + the container needs memory as well
666672
heapRamPercentage: 60
@@ -670,6 +676,9 @@ policies:
670676
# g1ReservePercent configures the used G1 GC "amount of heap to keep free after a mixed GC"
671677
# default (by JVM if not set): 10
672678
g1ReservePercent: 10
679+
# initiatingHeapOccupancyPercent configures the G1 GC "heap occupancy threshold" to start a concurrent GC cycle
680+
# default (by JVM if not set): 45
681+
initiatingHeapOccupancyPercent: 45
673682
# g1NewSizePercent sets the percentage of the heap size to use as default minimum young (new) generation
674683
# default (by JVM if not set): 5
675684
g1NewSizePercent: 5
@@ -983,6 +992,12 @@ things:
983992
# activeProcessorCount defines how many processors the JVM should be configured to use
984993
# this is e.g. relevant for the GC which calculates the amount of asynchronous threads for GC based on the processor count
985994
activeProcessorCount: 2
995+
# parallelGcThreads defines how many threads the G1 garbage collector should use for parallel GC operations
996+
# if configured < 1, the JVM chooses according to its own logic
997+
parallelGcThreads: 0
998+
# concGcThreads defines how many threads the G1 garbage collector should use for concurrent GC operations
999+
# if configured < 1, the JVM chooses according to its own logic
1000+
concGcThreads: 0
9861001
# heapRamPercentage defines how much memory of the configured "resources.memoryMi" can be used by the JVM heap space
9871002
# be aware that the JVM also requires memory for "off heap" (and also stack) space + the container needs memory as well
9881003
heapRamPercentage: 60
@@ -992,6 +1007,9 @@ things:
9921007
# g1ReservePercent configures the used G1 GC "amount of heap to keep free after a mixed GC"
9931008
# default (by JVM if not set): 10
9941009
g1ReservePercent: 10
1010+
# initiatingHeapOccupancyPercent configures the G1 GC "heap occupancy threshold" to start a concurrent GC cycle
1011+
# default (by JVM if not set): 45
1012+
initiatingHeapOccupancyPercent: 45
9951013
# g1NewSizePercent sets the percentage of the heap size to use as default minimum young (new) generation
9961014
# default (by JVM if not set): 5
9971015
g1NewSizePercent: 5
@@ -1463,6 +1481,12 @@ thingsSearch:
14631481
# activeProcessorCount defines how many processors the JVM should be configured to use
14641482
# this is e.g. relevant for the GC which calculates the amount of asynchronous threads for GC based on the processor count
14651483
activeProcessorCount: 2
1484+
# parallelGcThreads defines how many threads the G1 garbage collector should use for parallel GC operations
1485+
# if configured < 1, the JVM chooses according to its own logic
1486+
parallelGcThreads: 0
1487+
# concGcThreads defines how many threads the G1 garbage collector should use for concurrent GC operations
1488+
# if configured < 1, the JVM chooses according to its own logic
1489+
concGcThreads: 0
14661490
# heapRamPercentage defines how much memory of the configured "resources.memoryMi" can be used by the JVM heap space
14671491
# be aware that the JVM also requires memory for "off heap" (and also stack) space + the container needs memory as well
14681492
heapRamPercentage: 60
@@ -1472,6 +1496,9 @@ thingsSearch:
14721496
# g1ReservePercent configures the used G1 GC "amount of heap to keep free after a mixed GC"
14731497
# default (by JVM if not set): 10
14741498
g1ReservePercent: 10
1499+
# initiatingHeapOccupancyPercent configures the G1 GC "heap occupancy threshold" to start a concurrent GC cycle
1500+
# default (by JVM if not set): 45
1501+
initiatingHeapOccupancyPercent: 45
14751502
# g1NewSizePercent sets the percentage of the heap size to use as default minimum young (new) generation
14761503
# default (by JVM if not set): 5
14771504
g1NewSizePercent: 5
@@ -1765,6 +1792,12 @@ connectivity:
17651792
# activeProcessorCount defines how many processors the JVM should be configured to use
17661793
# this is e.g. relevant for the GC which calculates the amount of asynchronous threads for GC based on the processor count
17671794
activeProcessorCount: 2
1795+
# parallelGcThreads defines how many threads the G1 garbage collector should use for parallel GC operations
1796+
# if configured < 1, the JVM chooses according to its own logic
1797+
parallelGcThreads: 0
1798+
# concGcThreads defines how many threads the G1 garbage collector should use for concurrent GC operations
1799+
# if configured < 1, the JVM chooses according to its own logic
1800+
concGcThreads: 0
17681801
# heapRamPercentage defines how much memory of the configured "resources.memoryMi" can be used by the JVM heap space
17691802
# be aware that the JVM also requires memory for "off heap" (and also stack) space + the container needs memory as well
17701803
heapRamPercentage: 60
@@ -1774,6 +1807,9 @@ connectivity:
17741807
# g1ReservePercent configures the used G1 GC "amount of heap to keep free after a mixed GC"
17751808
# default (by JVM if not set): 10
17761809
g1ReservePercent: 10
1810+
# initiatingHeapOccupancyPercent configures the G1 GC "heap occupancy threshold" to start a concurrent GC cycle
1811+
# default (by JVM if not set): 45
1812+
initiatingHeapOccupancyPercent: 45
17771813
# g1NewSizePercent sets the percentage of the heap size to use as default minimum young (new) generation
17781814
# default (by JVM if not set): 5
17791815
g1NewSizePercent: 5
@@ -2146,6 +2182,12 @@ gateway:
21462182
# activeProcessorCount defines how many processors the JVM should be configured to use
21472183
# this is e.g. relevant for the GC which calculates the amount of asynchronous threads for GC based on the processor count
21482184
activeProcessorCount: 2
2185+
# parallelGcThreads defines how many threads the G1 garbage collector should use for parallel GC operations
2186+
# if configured < 1, the JVM chooses according to its own logic
2187+
parallelGcThreads: 0
2188+
# concGcThreads defines how many threads the G1 garbage collector should use for concurrent GC operations
2189+
# if configured < 1, the JVM chooses according to its own logic
2190+
concGcThreads: 0
21492191
# heapRamPercentage defines how much memory of the configured "resources.memoryMi" can be used by the JVM heap space
21502192
# be aware that the JVM also requires memory for "off heap" (and also stack) space + the container needs memory as well
21512193
heapRamPercentage: 60
@@ -2155,6 +2197,9 @@ gateway:
21552197
# g1ReservePercent configures the used G1 GC "amount of heap to keep free after a mixed GC"
21562198
# default (by JVM if not set): 10
21572199
g1ReservePercent: 10
2200+
# initiatingHeapOccupancyPercent configures the G1 GC "heap occupancy threshold" to start a concurrent GC cycle
2201+
# default (by JVM if not set): 45
2202+
initiatingHeapOccupancyPercent: 45
21582203
# g1NewSizePercent sets the percentage of the heap size to use as default minimum young (new) generation
21592204
# default (by JVM if not set): 5
21602205
g1NewSizePercent: 5

0 commit comments

Comments
 (0)