8.3 CPU Usage/Spikes

Hi,

I've just upgraded from Ignition 8.1.27 to 8.3.6 and everything is running fine after a couple of fixes. I am getting some CPU Spikes that I cannot relate anything, I've changed the RAM allocation to 16GB which didn't make any difference so changed it back.

OS: Windows Server 2025 | amd64

Java: 17.0.18+8-LTS

Server:4 Core Processor, 20GB RAM

wrapper.java.initmemory=12000

wrapper.java.maxmemory=12000

Garbage Collector: G1 Young Generation, G1 Old Generation

any ideas on how to solve this would be appreciated.

Thanks for your help in advance.

Is it showing up in any behaviors? Otherwise I'd think this trend looks normal. (Perspective clients do produce spiky CPU loads as users navigate to busy screens.)

CPU seems to be getting to 95-100% and close proximity spikes seems to cause clock drift warnings.

6/8/2026 8:15:12 PM Clock drift, degraded performance, or pause-the-world detected. Max allowed deviation=1000ms, actual deviation=-13608ms

It does this quite frequently but not consistently, every 3-6 hours with similar deviation.

Is there really a minus sign in the actual deviation number? If so, that is a clock warp, not an actual stall, and your infrastructure is broken (HyperV?).

A clock warp can distort calculations that measure something per unit time. Meaning that you may not really have CPU spikes, just artifacts of a broken clock.

(Consider not using Windows... Its NTP services make abrupt clock changes instead of slewing the clock as done in Linux.)

Yes the deviation on the clock drift warning is sometimes - sometimes +.

Interesting i never thought about this, i will check the time service and kernel to see if the server is making adjustments could be the reason for the spikes.

It is also possible to have two time services fighting each other. Like when a hypervisor provides time to a guest VM through a VM-specific driver, and the VM also runs its own time sync service.

You might try this time sync tool for Windows in place of Windows time service. I believe there's a setting to have it gradually adjust the time rather then just sync immediately.