feat: Able to control JVM thread stack size and Hibernate query plan cache size via environment variables (OD-2510)

This commit is contained in:
Robin Shen 2025-08-01 22:54:26 +08:00
parent 27c0204bb0
commit 7b0defc133
5 changed files with 22 additions and 1 deletions

View File

@ -23,7 +23,8 @@ public class HibernateConfig extends Properties {
DIALECT, DRIVER, URL, USER, PASS, "hibernate.hikari.leakDetectionThreshold",
"hibernate.hikari.maxLifetime", "hibernate.hikari.connectionTimeout",
"hibernate.hikari.maximumPoolSize", "hibernate.hikari.validationTimeout",
"hibernate.show_sql"
"hibernate.show_sql", "hibernate.query.plan_cache_max_size",
"hibernate.query.plan_parameter_metadata_max_size"
};
private volatile String clusterCredential;

View File

@ -44,6 +44,18 @@ containers:
- name: max_memory_percent
value: "{{ .Values.onedev.jvm.maxMemoryPercent }}"
{{- end }}
{{- if .Values.onedev.jvm.threadStackSize }}
- name: thread_stack_size
value: "{{ .Values.onedev.jvm.threadStackSize }}"
{{- end }}
{{- if .Values.onedev.hibernate.queryPlanCacheMaxSize }}
- name: hibernate_query_plan_cache_max_size
value: "{{ .Values.onedev.hibernate.queryPlanCacheMaxSize }}"
{{- end }}
{{- if .Values.onedev.hibernate.queryPlanParameterMetadataMaxSize }}
- name: hibernate_query_plan_parameter_metadata_max_size
value: "{{ .Values.onedev.hibernate.queryPlanParameterMetadataMaxSize }}"
{{- end }}
{{- if .Values.onedev.initSettings.user }}
- name: initial_user
value: {{ .Values.onedev.initSettings.user }}

View File

@ -25,6 +25,10 @@ onedev:
secretName: "onedev-trustcerts"
jvm:
maxMemoryPercent: "50"
threadStackSize: "1024k"
hibernate:
queryPlanCacheMaxSize: "2048"
queryPlanParameterMetadataMaxSize: "128"
# Specify OneDev Server initial settings to avoid manual setup
initSettings:
# onedev.initSettings.user -- Administrator username. Leave empty to prompt

View File

@ -86,8 +86,10 @@ wrapper.java.additional.32=--add-opens=java.management/sun.management=ALL-UNNAME
wrapper.java.additional.33=--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
wrapper.java.additional.50=--add-opens=java.base/sun.nio.fs=ALL-UNNAMED
wrapper.java.additional.100=-XX:MaxRAMPercentage=%max_memory_percent%
wrapper.java.additional.101=-Xss%thread_stack_size%
set.default.max_memory_percent=50
set.default.thread_stack_size=1024k
# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=@bootstrap.class@

View File

@ -75,3 +75,5 @@ hibernate.validator.apply_to_ddl=false
hibernate.cache.region.factory_class=com.hazelcast.hibernate.HazelcastLocalCacheRegionFactory
hibernate.cache.use_query_cache=true
hibernate.cache.auto_evict_collection_cache=true
hibernate.query.plan_cache_max_size=2048
hibernate.query.plan_parameter_metadata_max_size=128