Was this page helpful?
Caution
You're viewing documentation for an unstable version of ScyllaDB Operator. Switch to the latest stable version.
Troubleshoot performance¶
CPU pinning¶
Diagnose and fix issues with CPU pinning for ScyllaDB Pods.
Verify CPU pinning¶
Check QoS class:
kubectl get pods -l 'app.kubernetes.io/name=scylla' \
-o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.qosClass}{"\n"}{end}'
All ScyllaDB Pods should report Guaranteed.
Check ScyllaDB startup flags — when CPU pinning is active, ScyllaDB starts with --overprovisioned=0:
kubectl logs <pod-name> -c scylla | grep -E 'overprovisioned|smp|cpuset'
Check that the ContainerPerftune Job ran for each ScyllaDB Pod:
kubectl -n scylla-operator-node-tuning get jobs \
-l scylla-operator.scylladb.com/node-config-job-type=ContainerPerftune
Common issues¶
Symptom |
Cause |
Fix |
|---|---|---|
|
|
Set matching requests and limits on both |
|
Pod is not Guaranteed QoS, or kubelet lacks static CPU policy |
Check QoS class and kubelet configuration |
No |
Pod is Burstable — tuning is skipped for non-Guaranteed Pods |
Fix QoS class |
|
Kubelet not using static policy, or CPU request is fractional |
Enable |
Latency spikes despite pinning |
IRQ affinity not set — perftune job failed or did not run |
Verify |
See also¶
Configure CPU pinning — how to set up CPU pinning.