Closed iAlex97 closed 2 months ago
Finally got it to work using Custom
GC like this:
config:
jvmOptions:
heap_initial_size: 4G
heap_max_size: 4G
gc: Custom
additionalOptions:
- -XX:+UnlockExperimentalVMOptions
- -XX:+UseLargePages
- -XX:+UseZGC
This was fixed and works in 1.19.0.
What happened?
I just got started with using K8ssandra operator and cannot wait to migrate to it our on-premise cluster. Having previously ran that cluster (version 3.11) with Shenandoah GC and saw the latency improvements, enabling ZGC was among the first things I tried. However after checking out 4.0-jdk11-G1 Cassandra pods never fully initialised, due to Cassandra process immediately exiting when started.
Did you expect to see something different?
I would expect the cluster to come up normally using the test fixture.
How to reproduce it (as minimally and precisely as possible):
kubectl apply -f manifest.yaml
Environment
K8ssandra Operator version:
* Kubernetes version information: `Server Version: version.Info{Major:"1", Minor:"29", GitVersion:"v1.29.5", GitCommit:"59755ff595fa4526236b0cc03aa2242d941a5171", GitTreeState:"clean", BuildDate:"2024-05-14T10:39:39Z", GoVersion:"go1.21.9", Compiler:"gc", Platform:"linux/amd64"}` * Kubernetes cluster kind:``` Kubespray on baremetal ```1.17.0
Manifests:
not relevant
Anything else we need to know?:
My debugging process involved running exec on one pod and trying to manually start the cassandra process like this:
results in the following output
Checking the contents of
/opt/cassandra/conf/jvm11-server.options
:which indeed shows the
-XX:+UseZGC
flag before-XX:+UnlockExperimentalVMOptions
.My workaround was setting
-XX:+UnlockExperimentalVMOptions
inJVM_OPTIONS
like this:Finally I would also like to mention that the use of ZGC should be backed by enabling hugepages on the nodes which was my first guess as to why the java process refused to start.
┆Issue is synchronized with this Jira Story by Unito ┆Issue Number: K8OP-10