It’s very common to see Clockspring using a lot of CPU.
This often triggers concern, but high CPU usage is not automatically a problem.
In many cases, it means the system is doing exactly what it should.
This article explains how to tell the difference.
High CPU Is Often Healthy
Clockspring is designed to:
move data as fast as downstream systems allow
use available resources efficiently
avoid idle capacity when work is available
If there is data to process and downstream systems are accepting it, high CPU is expected behavior.
Idle CPU is wasted capacity.
When High CPU Is Not a Problem
High CPU is usually fine when:
throughput is high
queues are stable or draining
backpressure is not constantly engaged
nodes remain stable in the cluster
latency matches expectations
In this case, CPU is doing useful work.
When High CPU Is a Warning Sign
High CPU becomes a concern when it is paired with:
low or declining throughput
growing queues
frequent garbage collection pauses
nodes disconnecting or flapping
sluggish UI responsiveness
CPU is busy, but progress is slow.
That indicates a bottleneck somewhere else.
Common Causes of “Bad” High CPU
Garbage Collection Pressure
GC can consume significant CPU without doing useful work.
Symptoms:
CPU spikes in bursts
throughput dropping during spikes
increasing GC frequency over time
GC-heavy CPU is different from processing-heavy CPU.
Disk I/O Bottlenecks
Slow disks cause:
threads to block
retries and context switching
CPU overhead with little forward progress
This is common when repositories are under pressure.
Thread Starvation
If all threads are busy waiting on:
slow downstream systems
blocked I/O
overloaded databases
CPU may stay high while actual work stalls.
Excessive Concurrency
Too many concurrent tasks can:
increase context switching
amplify GC pressure
reduce effective throughput
More threads does not always mean more work gets done.
Why CPU Can Be High Even When “Nothing Is Happening”
Common scenarios:
retries looping quickly
processors constantly checking empty queues
tight polling intervals
GC cycles dominating runtime
CPU is active, but not productive.
What CPU Usage Does Not Tell You
CPU alone does not tell you:
whether data is being lost
whether the flow is healthy
where the real bottleneck is
CPU is a signal, not a diagnosis.
What to Check Alongside CPU
Always correlate CPU with:
throughput metrics
queue sizes
GC behavior
disk usage and I/O
backpressure activity
The relationship between these tells the real story.
Common Mistakes
Treating high CPU as a failure by itself
Adding artificial limits to “calm things down”
Increasing heap size without fixing pressure
Scaling out before understanding the bottleneck
These usually make things worse.
Summary
High CPU usage in Clockspring is often a sign of healthy, active processing.
It becomes a problem only when:
throughput is low
queues are growing
GC or I/O dominates
cluster stability degrades
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article